From 46a54548fe937dc0536c34b56d2c50d3259514d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=BChlig?= Date: Thu, 22 Oct 2020 10:45:03 +0200 Subject: [PATCH] Added insert multiple rows --- src/parser/bison_parser.cpp | 4175 +++++++++++++++++------------------ src/parser/bison_parser.h | 321 ++- src/parser/bison_parser.y | 21 +- src/parser/flex_lexer.cpp | 2649 ++++++++++++---------- src/parser/flex_lexer.h | 8 +- src/sql/InsertStatement.h | 2 +- src/sql/statements.cpp | 12 +- src/util/sqlhelper.cpp | 6 +- 8 files changed, 3666 insertions(+), 3528 deletions(-) diff --git a/src/parser/bison_parser.cpp b/src/parser/bison_parser.cpp index 7a2f3d7..1013af9 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.6.4. */ +/* A Bison parser, made by GNU Bison 3.5.1. */ /* Bison implementation for Yacc-like parsers in C @@ -34,10 +34,6 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -45,11 +41,14 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.6.4" +#define YYBISON_VERSION "3.5.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -103,7 +102,7 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha } -#line 107 "bison_parser.cpp" +#line 106 "bison_parser.cpp" # ifndef YY_CAST # ifdef __cplusplus @@ -126,6 +125,14 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha # endif # endif +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 1 +#endif + /* Use api.header.include to #include this header instead of duplicating it here. */ #ifndef YY_HSQL_BISON_PARSER_H_INCLUDED @@ -170,168 +177,166 @@ extern int hsql_debug; } \ } -#line 174 "bison_parser.cpp" +#line 181 "bison_parser.cpp" -/* Token kinds. */ +/* Token type. */ #ifndef HSQL_TOKENTYPE # define HSQL_TOKENTYPE enum hsql_tokentype { - SQL_HSQL_EMPTY = -2, - SQL_YYEOF = 0, /* "end of file" */ - SQL_HSQL_error = 256, /* error */ - SQL_HSQL_UNDEF = 257, /* "invalid token" */ - SQL_IDENTIFIER = 258, /* IDENTIFIER */ - SQL_STRING = 259, /* STRING */ - SQL_FLOATVAL = 260, /* FLOATVAL */ - SQL_INTVAL = 261, /* INTVAL */ - SQL_DEALLOCATE = 262, /* DEALLOCATE */ - SQL_PARAMETERS = 263, /* PARAMETERS */ - SQL_INTERSECT = 264, /* INTERSECT */ - SQL_TEMPORARY = 265, /* TEMPORARY */ - SQL_TIMESTAMP = 266, /* TIMESTAMP */ - SQL_DISTINCT = 267, /* DISTINCT */ - SQL_NVARCHAR = 268, /* NVARCHAR */ - SQL_RESTRICT = 269, /* RESTRICT */ - SQL_TRUNCATE = 270, /* TRUNCATE */ - SQL_ANALYZE = 271, /* ANALYZE */ - SQL_BETWEEN = 272, /* BETWEEN */ - SQL_CASCADE = 273, /* CASCADE */ - SQL_COLUMNS = 274, /* COLUMNS */ - SQL_CONTROL = 275, /* CONTROL */ - SQL_DEFAULT = 276, /* DEFAULT */ - SQL_EXECUTE = 277, /* EXECUTE */ - SQL_EXPLAIN = 278, /* EXPLAIN */ - SQL_INTEGER = 279, /* INTEGER */ - SQL_NATURAL = 280, /* NATURAL */ - 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_TRUE = 393, /* TRUE */ - SQL_FALSE = 394, /* FALSE */ - SQL_TRANSACTION = 395, /* TRANSACTION */ - SQL_BEGIN = 396, /* BEGIN */ - SQL_COMMIT = 397, /* COMMIT */ - SQL_ROLLBACK = 398, /* ROLLBACK */ - SQL_EQUALS = 399, /* EQUALS */ - SQL_NOTEQUALS = 400, /* NOTEQUALS */ - SQL_LESS = 401, /* LESS */ - SQL_GREATER = 402, /* GREATER */ - SQL_LESSEQ = 403, /* LESSEQ */ - SQL_GREATEREQ = 404, /* GREATEREQ */ - SQL_NOTNULL = 405, /* NOTNULL */ - SQL_UMINUS = 406 /* UMINUS */ + SQL_IDENTIFIER = 258, + SQL_STRING = 259, + SQL_FLOATVAL = 260, + SQL_INTVAL = 261, + SQL_DEALLOCATE = 262, + SQL_PARAMETERS = 263, + SQL_INTERSECT = 264, + SQL_TEMPORARY = 265, + SQL_TIMESTAMP = 266, + SQL_DISTINCT = 267, + SQL_NVARCHAR = 268, + SQL_RESTRICT = 269, + SQL_TRUNCATE = 270, + SQL_ANALYZE = 271, + SQL_BETWEEN = 272, + SQL_CASCADE = 273, + SQL_COLUMNS = 274, + SQL_CONTROL = 275, + SQL_DEFAULT = 276, + SQL_EXECUTE = 277, + SQL_EXPLAIN = 278, + SQL_INTEGER = 279, + SQL_NATURAL = 280, + SQL_PREPARE = 281, + SQL_PRIMARY = 282, + SQL_SCHEMAS = 283, + SQL_SPATIAL = 284, + SQL_VARCHAR = 285, + SQL_VIRTUAL = 286, + SQL_DESCRIBE = 287, + SQL_BEFORE = 288, + SQL_COLUMN = 289, + SQL_CREATE = 290, + SQL_DELETE = 291, + SQL_DIRECT = 292, + SQL_DOUBLE = 293, + SQL_ESCAPE = 294, + SQL_EXCEPT = 295, + SQL_EXISTS = 296, + SQL_EXTRACT = 297, + SQL_CAST = 298, + SQL_FORMAT = 299, + SQL_GLOBAL = 300, + SQL_HAVING = 301, + SQL_IMPORT = 302, + SQL_INSERT = 303, + SQL_ISNULL = 304, + SQL_OFFSET = 305, + SQL_RENAME = 306, + SQL_SCHEMA = 307, + SQL_SELECT = 308, + SQL_SORTED = 309, + SQL_TABLES = 310, + SQL_UNIQUE = 311, + SQL_UNLOAD = 312, + SQL_UPDATE = 313, + SQL_VALUES = 314, + SQL_AFTER = 315, + SQL_ALTER = 316, + SQL_CROSS = 317, + SQL_DELTA = 318, + SQL_FLOAT = 319, + SQL_GROUP = 320, + SQL_INDEX = 321, + SQL_INNER = 322, + SQL_LIMIT = 323, + SQL_LOCAL = 324, + SQL_MERGE = 325, + SQL_MINUS = 326, + SQL_ORDER = 327, + SQL_OUTER = 328, + SQL_RIGHT = 329, + SQL_TABLE = 330, + SQL_UNION = 331, + SQL_USING = 332, + SQL_WHERE = 333, + SQL_CALL = 334, + SQL_CASE = 335, + SQL_CHAR = 336, + SQL_COPY = 337, + SQL_DATE = 338, + SQL_DATETIME = 339, + SQL_DESC = 340, + SQL_DROP = 341, + SQL_ELSE = 342, + SQL_FILE = 343, + SQL_FROM = 344, + SQL_FULL = 345, + SQL_HASH = 346, + SQL_HINT = 347, + SQL_INTO = 348, + SQL_JOIN = 349, + SQL_LEFT = 350, + SQL_LIKE = 351, + SQL_LOAD = 352, + SQL_LONG = 353, + SQL_NULL = 354, + SQL_PLAN = 355, + SQL_SHOW = 356, + SQL_TEXT = 357, + SQL_THEN = 358, + SQL_TIME = 359, + SQL_VIEW = 360, + SQL_WHEN = 361, + SQL_WITH = 362, + SQL_ADD = 363, + SQL_ALL = 364, + SQL_AND = 365, + SQL_ASC = 366, + SQL_END = 367, + SQL_FOR = 368, + SQL_INT = 369, + SQL_KEY = 370, + SQL_NOT = 371, + SQL_OFF = 372, + SQL_SET = 373, + SQL_TOP = 374, + SQL_AS = 375, + SQL_BY = 376, + SQL_IF = 377, + SQL_IN = 378, + SQL_IS = 379, + SQL_OF = 380, + SQL_ON = 381, + SQL_OR = 382, + SQL_TO = 383, + SQL_ARRAY = 384, + SQL_CONCAT = 385, + SQL_ILIKE = 386, + SQL_SECOND = 387, + SQL_MINUTE = 388, + SQL_HOUR = 389, + SQL_DAY = 390, + SQL_MONTH = 391, + SQL_YEAR = 392, + SQL_TRUE = 393, + SQL_FALSE = 394, + SQL_TRANSACTION = 395, + SQL_BEGIN = 396, + SQL_COMMIT = 397, + SQL_ROLLBACK = 398, + SQL_BTREE = 399, + SQL_HASHTABLE = 400, + SQL_SKIPLIST = 401, + SQL_EQUALS = 402, + SQL_NOTEQUALS = 403, + SQL_LESS = 404, + SQL_GREATER = 405, + SQL_LESSEQ = 406, + SQL_GREATEREQ = 407, + SQL_NOTNULL = 408, + SQL_UMINUS = 409 }; - typedef enum hsql_tokentype hsql_token_kind_t; #endif /* Value type. */ @@ -370,6 +375,7 @@ union HSQL_STYPE hsql::LimitDescription* limit; hsql::ColumnDefinition* column_t; hsql::ColumnType column_type_t; + hsql::IndexDataStructureType index_data_structure_type_t; hsql::ImportType import_type_t; hsql::GroupByDescription* group_t; hsql::UpdateClause* update_t; @@ -383,10 +389,11 @@ union HSQL_STYPE std::vector* column_vec; std::vector* update_vec; std::vector* expr_vec; + std::vector*>* expr_vec_vec; std::vector* order_vec; std::vector* with_description_vec; -#line 390 "bison_parser.cpp" +#line 397 "bison_parser.cpp" }; typedef union HSQL_STYPE HSQL_STYPE; @@ -413,288 +420,6 @@ struct HSQL_LTYPE int hsql_parse (hsql::SQLParserResult* result, yyscan_t scanner); #endif /* !YY_HSQL_BISON_PARSER_H_INCLUDED */ -/* Symbol kind. */ -enum yysymbol_kind_t -{ - YYSYMBOL_YYEMPTY = -2, - YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYerror = 1, /* error */ - YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ - YYSYMBOL_IDENTIFIER = 3, /* IDENTIFIER */ - YYSYMBOL_STRING = 4, /* STRING */ - YYSYMBOL_FLOATVAL = 5, /* FLOATVAL */ - YYSYMBOL_INTVAL = 6, /* INTVAL */ - YYSYMBOL_DEALLOCATE = 7, /* DEALLOCATE */ - YYSYMBOL_PARAMETERS = 8, /* PARAMETERS */ - YYSYMBOL_INTERSECT = 9, /* INTERSECT */ - YYSYMBOL_TEMPORARY = 10, /* TEMPORARY */ - YYSYMBOL_TIMESTAMP = 11, /* TIMESTAMP */ - YYSYMBOL_DISTINCT = 12, /* DISTINCT */ - YYSYMBOL_NVARCHAR = 13, /* NVARCHAR */ - YYSYMBOL_RESTRICT = 14, /* RESTRICT */ - YYSYMBOL_TRUNCATE = 15, /* TRUNCATE */ - YYSYMBOL_ANALYZE = 16, /* ANALYZE */ - YYSYMBOL_BETWEEN = 17, /* BETWEEN */ - YYSYMBOL_CASCADE = 18, /* CASCADE */ - YYSYMBOL_COLUMNS = 19, /* COLUMNS */ - YYSYMBOL_CONTROL = 20, /* CONTROL */ - YYSYMBOL_DEFAULT = 21, /* DEFAULT */ - YYSYMBOL_EXECUTE = 22, /* EXECUTE */ - YYSYMBOL_EXPLAIN = 23, /* EXPLAIN */ - YYSYMBOL_INTEGER = 24, /* INTEGER */ - YYSYMBOL_NATURAL = 25, /* NATURAL */ - 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_TRUE = 138, /* TRUE */ - YYSYMBOL_FALSE = 139, /* FALSE */ - YYSYMBOL_TRANSACTION = 140, /* TRANSACTION */ - YYSYMBOL_BEGIN = 141, /* BEGIN */ - YYSYMBOL_COMMIT = 142, /* COMMIT */ - YYSYMBOL_ROLLBACK = 143, /* ROLLBACK */ - YYSYMBOL_144_ = 144, /* '=' */ - YYSYMBOL_EQUALS = 145, /* EQUALS */ - YYSYMBOL_NOTEQUALS = 146, /* NOTEQUALS */ - YYSYMBOL_147_ = 147, /* '<' */ - YYSYMBOL_148_ = 148, /* '>' */ - YYSYMBOL_LESS = 149, /* LESS */ - YYSYMBOL_GREATER = 150, /* GREATER */ - YYSYMBOL_LESSEQ = 151, /* LESSEQ */ - YYSYMBOL_GREATEREQ = 152, /* GREATEREQ */ - YYSYMBOL_NOTNULL = 153, /* NOTNULL */ - YYSYMBOL_154_ = 154, /* '+' */ - YYSYMBOL_155_ = 155, /* '-' */ - YYSYMBOL_156_ = 156, /* '*' */ - YYSYMBOL_157_ = 157, /* '/' */ - YYSYMBOL_158_ = 158, /* '%' */ - YYSYMBOL_159_ = 159, /* '^' */ - YYSYMBOL_UMINUS = 160, /* UMINUS */ - YYSYMBOL_161_ = 161, /* '[' */ - YYSYMBOL_162_ = 162, /* ']' */ - YYSYMBOL_163_ = 163, /* '(' */ - YYSYMBOL_164_ = 164, /* ')' */ - YYSYMBOL_165_ = 165, /* '.' */ - YYSYMBOL_166_ = 166, /* ';' */ - YYSYMBOL_167_ = 167, /* ',' */ - YYSYMBOL_168_ = 168, /* '?' */ - YYSYMBOL_YYACCEPT = 169, /* $accept */ - YYSYMBOL_input = 170, /* input */ - YYSYMBOL_statement_list = 171, /* statement_list */ - YYSYMBOL_statement = 172, /* statement */ - YYSYMBOL_preparable_statement = 173, /* preparable_statement */ - YYSYMBOL_opt_hints = 174, /* opt_hints */ - YYSYMBOL_hint_list = 175, /* hint_list */ - YYSYMBOL_hint = 176, /* hint */ - YYSYMBOL_transaction_statement = 177, /* transaction_statement */ - YYSYMBOL_opt_transaction_keyword = 178, /* opt_transaction_keyword */ - YYSYMBOL_prepare_statement = 179, /* prepare_statement */ - YYSYMBOL_prepare_target_query = 180, /* prepare_target_query */ - YYSYMBOL_execute_statement = 181, /* execute_statement */ - YYSYMBOL_import_statement = 182, /* import_statement */ - YYSYMBOL_file_type = 183, /* file_type */ - YYSYMBOL_file_path = 184, /* file_path */ - YYSYMBOL_opt_file_type = 185, /* opt_file_type */ - YYSYMBOL_export_statement = 186, /* export_statement */ - YYSYMBOL_show_statement = 187, /* show_statement */ - YYSYMBOL_create_statement = 188, /* create_statement */ - YYSYMBOL_opt_not_exists = 189, /* opt_not_exists */ - YYSYMBOL_column_def_commalist = 190, /* column_def_commalist */ - YYSYMBOL_column_def = 191, /* column_def */ - YYSYMBOL_column_type = 192, /* column_type */ - YYSYMBOL_opt_column_nullable = 193, /* opt_column_nullable */ - YYSYMBOL_drop_statement = 194, /* drop_statement */ - YYSYMBOL_opt_exists = 195, /* opt_exists */ - YYSYMBOL_delete_statement = 196, /* delete_statement */ - YYSYMBOL_truncate_statement = 197, /* truncate_statement */ - YYSYMBOL_insert_statement = 198, /* insert_statement */ - YYSYMBOL_opt_column_list = 199, /* opt_column_list */ - YYSYMBOL_update_statement = 200, /* update_statement */ - YYSYMBOL_update_clause_commalist = 201, /* update_clause_commalist */ - YYSYMBOL_update_clause = 202, /* update_clause */ - YYSYMBOL_select_statement = 203, /* select_statement */ - YYSYMBOL_select_within_set_operation = 204, /* select_within_set_operation */ - YYSYMBOL_select_within_set_operation_no_parentheses = 205, /* select_within_set_operation_no_parentheses */ - YYSYMBOL_select_with_paren = 206, /* select_with_paren */ - YYSYMBOL_select_no_paren = 207, /* select_no_paren */ - YYSYMBOL_set_operator = 208, /* set_operator */ - YYSYMBOL_set_type = 209, /* set_type */ - YYSYMBOL_opt_all = 210, /* opt_all */ - YYSYMBOL_select_clause = 211, /* select_clause */ - YYSYMBOL_opt_distinct = 212, /* opt_distinct */ - YYSYMBOL_select_list = 213, /* select_list */ - YYSYMBOL_opt_from_clause = 214, /* opt_from_clause */ - YYSYMBOL_from_clause = 215, /* from_clause */ - YYSYMBOL_opt_where = 216, /* opt_where */ - YYSYMBOL_opt_group = 217, /* opt_group */ - YYSYMBOL_opt_having = 218, /* opt_having */ - YYSYMBOL_opt_order = 219, /* opt_order */ - YYSYMBOL_order_list = 220, /* order_list */ - YYSYMBOL_order_desc = 221, /* order_desc */ - YYSYMBOL_opt_order_type = 222, /* opt_order_type */ - YYSYMBOL_opt_top = 223, /* opt_top */ - YYSYMBOL_opt_limit = 224, /* opt_limit */ - YYSYMBOL_expr_list = 225, /* expr_list */ - YYSYMBOL_opt_literal_list = 226, /* opt_literal_list */ - YYSYMBOL_literal_list = 227, /* literal_list */ - YYSYMBOL_expr_alias = 228, /* expr_alias */ - YYSYMBOL_expr = 229, /* expr */ - YYSYMBOL_operand = 230, /* operand */ - YYSYMBOL_scalar_expr = 231, /* scalar_expr */ - YYSYMBOL_unary_expr = 232, /* unary_expr */ - YYSYMBOL_binary_expr = 233, /* binary_expr */ - YYSYMBOL_logic_expr = 234, /* logic_expr */ - YYSYMBOL_in_expr = 235, /* in_expr */ - YYSYMBOL_case_expr = 236, /* case_expr */ - YYSYMBOL_case_list = 237, /* case_list */ - YYSYMBOL_exists_expr = 238, /* exists_expr */ - YYSYMBOL_comp_expr = 239, /* comp_expr */ - YYSYMBOL_function_expr = 240, /* function_expr */ - YYSYMBOL_extract_expr = 241, /* extract_expr */ - YYSYMBOL_cast_expr = 242, /* cast_expr */ - YYSYMBOL_datetime_field = 243, /* datetime_field */ - YYSYMBOL_array_expr = 244, /* array_expr */ - YYSYMBOL_array_index = 245, /* array_index */ - YYSYMBOL_between_expr = 246, /* between_expr */ - YYSYMBOL_column_name = 247, /* column_name */ - YYSYMBOL_literal = 248, /* literal */ - YYSYMBOL_string_literal = 249, /* string_literal */ - YYSYMBOL_bool_literal = 250, /* bool_literal */ - YYSYMBOL_num_literal = 251, /* num_literal */ - YYSYMBOL_int_literal = 252, /* int_literal */ - YYSYMBOL_null_literal = 253, /* null_literal */ - YYSYMBOL_param_expr = 254, /* param_expr */ - YYSYMBOL_table_ref = 255, /* table_ref */ - YYSYMBOL_table_ref_atomic = 256, /* table_ref_atomic */ - YYSYMBOL_nonjoin_table_ref_atomic = 257, /* nonjoin_table_ref_atomic */ - YYSYMBOL_table_ref_commalist = 258, /* table_ref_commalist */ - YYSYMBOL_table_ref_name = 259, /* table_ref_name */ - YYSYMBOL_table_ref_name_no_alias = 260, /* table_ref_name_no_alias */ - YYSYMBOL_table_name = 261, /* table_name */ - YYSYMBOL_table_alias = 262, /* table_alias */ - YYSYMBOL_opt_table_alias = 263, /* opt_table_alias */ - YYSYMBOL_alias = 264, /* alias */ - YYSYMBOL_opt_alias = 265, /* opt_alias */ - YYSYMBOL_opt_with_clause = 266, /* opt_with_clause */ - YYSYMBOL_with_clause = 267, /* with_clause */ - YYSYMBOL_with_description_list = 268, /* with_description_list */ - YYSYMBOL_with_description = 269, /* with_description */ - YYSYMBOL_join_clause = 270, /* join_clause */ - YYSYMBOL_opt_join_type = 271, /* opt_join_type */ - YYSYMBOL_join_condition = 272, /* join_condition */ - YYSYMBOL_opt_semicolon = 273, /* opt_semicolon */ - YYSYMBOL_ident_commalist = 274 /* ident_commalist */ -}; -typedef enum yysymbol_kind_t yysymbol_kind_t; - @@ -794,7 +519,6 @@ typedef int yytype_uint16; #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - /* Stored state numbers (used for stacks). */ typedef yytype_int16 yy_state_t; @@ -813,7 +537,6 @@ typedef int yy_state_fast_t; # endif #endif - #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) @@ -871,7 +594,7 @@ typedef int yy_state_fast_t; #define YY_ASSERT(E) ((void) (0 && (E))) -#if 1 +#if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -936,7 +659,8 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* 1 */ +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -1002,28 +726,27 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 62 +#define YYFINAL 64 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 721 +#define YYLAST 807 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 169 +#define YYNTOKENS 172 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 106 +#define YYNNTS 110 /* YYNRULES -- Number of rules. */ -#define YYNRULES 262 +#define YYNRULES 272 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 474 +#define YYNSTATES 491 -#define YYMAXUTOK 406 +#define YYUNDEFTOK 2 +#define YYMAXUTOK 409 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK \ - ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ @@ -1032,13 +755,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, 158, 2, 2, - 163, 164, 156, 154, 167, 155, 165, 157, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 166, - 147, 144, 148, 168, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 161, 2, 2, + 166, 167, 159, 157, 170, 158, 168, 160, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 169, + 150, 147, 151, 171, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 161, 2, 162, 159, 2, 2, 2, 2, 2, + 2, 164, 2, 165, 162, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1068,89 +791,84 @@ static const yytype_uint8 yytranslate[] = 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, - 146, 149, 150, 151, 152, 153, 160 + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 148, 149, 152, 153, 154, 155, 156, 163 }; #if HSQL_DEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 269, 269, 290, 296, 305, 309, 313, 316, 319, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 343, - 344, 349, 350, 354, 358, 370, 373, 376, 382, 383, - 390, 397, 400, 404, 418, 424, 433, 450, 454, 457, - 466, 480, 483, 488, 502, 515, 522, 529, 540, 541, - 545, 546, 550, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 569, 570, 571, 581, 587, 593, 601, - 602, 611, 620, 633, 640, 651, 652, 662, 671, 672, - 676, 688, 692, 696, 710, 711, 714, 715, 726, 727, - 731, 741, 754, 761, 765, 769, 776, 779, 785, 797, - 798, 802, 806, 807, 811, 816, 817, 821, 826, 830, - 831, 835, 836, 840, 841, 845, 849, 850, 851, 857, - 858, 862, 863, 864, 865, 866, 867, 874, 875, 879, - 880, 884, 885, 889, 899, 900, 901, 902, 903, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, - 921, 922, 926, 927, 928, 929, 930, 934, 935, 936, - 937, 938, 939, 940, 941, 942, 943, 944, 948, 949, - 953, 954, 955, 956, 962, 963, 964, 965, 969, 970, - 974, 975, 979, 980, 981, 982, 983, 984, 985, 989, - 990, 994, 998, 1002, 1003, 1004, 1005, 1006, 1007, 1011, - 1015, 1019, 1023, 1024, 1025, 1026, 1030, 1031, 1032, 1033, - 1034, 1038, 1042, 1043, 1047, 1048, 1052, 1056, 1060, 1072, - 1073, 1083, 1084, 1088, 1089, 1098, 1099, 1104, 1115, 1124, - 1125, 1130, 1131, 1136, 1137, 1142, 1143, 1148, 1149, 1158, - 1159, 1163, 1167, 1171, 1178, 1191, 1199, 1209, 1228, 1229, - 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1242, 1251, - 1252, 1257, 1258 + 0, 274, 274, 295, 301, 310, 314, 318, 321, 324, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 348, + 349, 354, 355, 359, 363, 375, 378, 381, 387, 388, + 395, 402, 405, 409, 423, 429, 438, 455, 459, 462, + 471, 485, 488, 493, 507, 520, 527, 534, 542, 554, + 555, 559, 560, 564, 565, 566, 567, 572, 573, 577, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 596, 597, 598, 608, 614, 620, 628, 629, 638, 647, + 660, 667, 678, 679, 683, 687, 688, 698, 707, 708, + 712, 724, 728, 732, 746, 747, 750, 751, 762, 763, + 767, 777, 790, 797, 801, 805, 812, 815, 821, 833, + 834, 838, 842, 843, 847, 852, 853, 857, 862, 866, + 867, 871, 872, 876, 877, 881, 885, 886, 887, 893, + 894, 898, 899, 900, 901, 902, 903, 910, 911, 915, + 916, 920, 921, 925, 935, 936, 937, 938, 939, 943, + 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, + 957, 958, 962, 963, 964, 965, 966, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 984, 985, + 989, 990, 991, 992, 998, 999, 1000, 1001, 1005, 1006, + 1010, 1011, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1025, + 1026, 1030, 1034, 1038, 1039, 1040, 1041, 1042, 1043, 1047, + 1051, 1055, 1059, 1060, 1061, 1062, 1066, 1067, 1068, 1069, + 1070, 1074, 1078, 1079, 1083, 1084, 1088, 1092, 1096, 1108, + 1109, 1119, 1120, 1124, 1125, 1134, 1135, 1140, 1151, 1160, + 1161, 1166, 1167, 1172, 1173, 1178, 1179, 1184, 1185, 1194, + 1195, 1199, 1203, 1207, 1214, 1227, 1235, 1245, 1264, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1278, 1287, + 1288, 1293, 1294 }; #endif -/** Accessing symbol of state STATE. */ -#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) - -#if 1 -/* The user-facing name of the symbol whose (internal) number is - YYSYMBOL. No bounds checking. */ -static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; - +#if HSQL_DEBUG || YYERROR_VERBOSE || 1 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "\"end of file\"", "error", "\"invalid token\"", "IDENTIFIER", "STRING", - "FLOATVAL", "INTVAL", "DEALLOCATE", "PARAMETERS", "INTERSECT", - "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", "TRUE", "FALSE", "TRANSACTION", "BEGIN", - "COMMIT", "ROLLBACK", "'='", "EQUALS", "NOTEQUALS", "'<'", "'>'", "LESS", - "GREATER", "LESSEQ", "GREATEREQ", "NOTNULL", "'+'", "'-'", "'*'", "'/'", - "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", - "'?'", "$accept", "input", "statement_list", "statement", - "preparable_statement", "opt_hints", "hint_list", "hint", - "transaction_statement", "opt_transaction_keyword", "prepare_statement", - "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", + "$end", "error", "$undefined", "IDENTIFIER", "STRING", "FLOATVAL", + "INTVAL", "DEALLOCATE", "PARAMETERS", "INTERSECT", "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", "TRUE", "FALSE", "TRANSACTION", "BEGIN", + "COMMIT", "ROLLBACK", "BTREE", "HASHTABLE", "SKIPLIST", "'='", "EQUALS", + "NOTEQUALS", "'<'", "'>'", "LESS", "GREATER", "LESSEQ", "GREATEREQ", + "NOTNULL", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", + "']'", "'('", "')'", "'.'", "';'", "','", "'?'", "$accept", "input", + "statement_list", "statement", "preparable_statement", "opt_hints", + "hint_list", "hint", "transaction_statement", "opt_transaction_keyword", + "prepare_statement", "prepare_target_query", "execute_statement", + "import_statement", "file_type", "file_path", "opt_file_type", + "export_statement", "show_statement", "create_statement", + "opt_not_exists", "opt_unique", "opt_index_type", "column_def_commalist", + "column_def", "column_type", "opt_column_nullable", "drop_statement", + "opt_exists", "delete_statement", "truncate_statement", + "insert_statement", "opt_column_list", "insert_list", "insert_list_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", @@ -1170,15 +888,9 @@ static const char *const yytname[] = "join_clause", "opt_join_type", "join_condition", "opt_semicolon", "ident_commalist", YY_NULLPTR }; - -static const char * -yysymbol_name (yysymbol_kind_t yysymbol) -{ - return yytname[yysymbol]; -} #endif -#ifdef YYPRINT +# 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[] = @@ -1197,18 +909,19 @@ static const yytype_int16 yytoknum[] = 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, 61, 399, 400, 60, 62, 401, - 402, 403, 404, 405, 43, 45, 42, 47, 37, 94, - 406, 91, 93, 40, 41, 46, 59, 44, 63 + 395, 396, 397, 398, 399, 400, 401, 61, 402, 403, + 60, 62, 404, 405, 406, 407, 408, 43, 45, 42, + 47, 37, 94, 409, 91, 93, 40, 41, 46, 59, + 44, 63 }; -#endif +# endif -#define YYPACT_NINF (-318) +#define YYPACT_NINF (-276) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-260) +#define YYTABLE_NINF (-270) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -1217,54 +930,56 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 511, 7, 39, 125, 147, 39, -37, 71, 95, 103, - 39, 39, -19, 6, 225, 96, 96, 96, 237, 72, - -318, 150, -318, 150, -318, -318, -318, -318, -318, -318, - -318, -318, -318, -318, -318, 10, -318, 246, 135, -318, - 98, 190, -318, 179, 179, 39, 307, 39, 195, -318, - -63, 192, 192, 39, -318, 200, 158, -318, -318, -318, - -318, -318, -318, 506, -318, 245, -318, -318, 219, 10, - 20, -318, 26, -318, 338, 9, 341, 226, 39, 39, - 268, -318, 261, 189, 350, 351, 351, 313, 39, 39, - -318, 194, 225, -318, 196, 352, 349, 198, 199, -318, - -318, -318, 10, 264, 254, 10, 45, -318, -318, -318, - -318, -318, -318, -318, -318, 212, 211, -318, -318, -318, - -318, -318, -318, -318, -318, -318, 339, -62, 189, 248, - -318, 351, 378, 66, 240, -57, -318, 278, -318, 278, - -318, -318, -318, -318, -318, 385, -318, -318, 248, -318, - -318, 320, -318, -318, 20, -318, -318, 248, 320, 248, - 79, -318, -318, 9, -318, 394, 291, 396, 281, -122, - 242, 244, 247, 149, 280, 239, 326, -318, 227, 2, - 353, -318, -318, -318, -318, -318, -318, -318, -318, -318, - -318, -318, -318, -318, -318, -318, -318, 321, -318, -86, - 250, -318, 248, 350, -318, 371, -318, -318, 257, 30, - -318, 328, 255, -318, 36, 45, 10, 256, -318, -34, - 45, 2, 377, -16, -318, 333, -318, 310, 58, -318, - 291, 8, 14, 375, 161, 248, 248, 117, 133, 266, - 326, 541, 248, 44, 269, -55, 248, 248, 326, -318, - 326, -8, 267, -54, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 352, - 39, -318, 429, 9, 2, -318, 307, 9, -318, 385, - 13, 268, -318, 248, -318, 431, -318, -318, -318, -318, - 248, -318, -318, -318, -318, 248, 248, 351, -318, 276, - -318, -318, 282, -318, -318, -318, -318, -318, 90, -318, - 396, -318, -318, 248, -318, -318, 283, -318, -318, -318, - -318, -318, -318, 357, 172, 77, 134, 248, 248, -318, - 375, 344, 97, -318, -318, -318, 340, 475, 560, 326, - 288, 227, -318, 354, 295, 560, 560, 560, 560, 425, - 425, 425, 425, 44, 44, 55, 55, 55, -94, 290, - -318, -318, 108, -318, 142, -318, 291, -318, -3, -318, - 293, -318, 29, -318, 392, -318, -318, -318, 2, 2, - -318, 452, 455, -318, 363, -318, -318, 144, -318, 248, - 310, 248, 248, -318, 114, 140, 299, -318, 326, 560, - 227, 302, 151, -318, -318, -318, -318, 303, 374, -318, - -318, -318, 397, 398, 399, 379, 13, 472, -318, -318, - -318, 358, -318, 314, 316, -318, -318, 48, 322, 2, - 146, -318, 248, -318, 541, 323, 152, -318, -318, 29, - 13, -318, -318, -318, 13, 277, 325, 248, -318, -318, - -318, -318, -318, 2, -318, -318, -318, -318, 364, 378, - -22, 329, 248, 160, 248, -318, 15, 2, -318, -318, - 2, 330, 327, -318 + 531, 25, 111, 124, 134, 111, -19, 66, 70, 147, + 111, 111, -17, 29, 193, 116, 116, 116, 255, 99, + -276, 172, -276, 172, -276, -276, -276, -276, -276, -276, + -276, -276, -276, -276, -276, -38, -276, 293, 132, -276, + 118, 215, -276, -276, 188, 188, 245, 111, 315, 111, + 216, -276, -53, 219, 219, 111, -276, 227, 187, -276, + -276, -276, -276, -276, -276, 526, -276, 278, -276, -276, + 257, -38, 73, -276, 126, -276, 375, 18, 376, 263, + 111, 111, 188, 303, -276, 294, 218, 383, 384, 384, + 348, 111, 111, -276, 224, 193, -276, 225, 387, 386, + 232, 233, -276, -276, -276, -38, 287, 282, -38, 86, + -276, -276, -276, -276, -276, -276, -276, -276, 235, 234, + -276, -276, -276, -276, -276, -276, -276, -276, -276, 365, + -55, 218, 111, 256, -276, 384, 404, 8, 261, -49, + -276, 302, -276, 302, -276, -276, -276, -276, -276, 407, + -276, -276, 256, -276, -276, 341, -276, -276, 73, -276, + -276, 256, 341, 256, 35, -276, -276, 18, -276, 414, + 311, 418, 304, 297, 75, 259, 260, 268, 119, 317, + 280, 321, -276, 135, 136, 370, -276, -276, -276, -276, + -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, + -276, -276, 354, -276, -108, 283, -276, 256, 383, -276, + 408, -276, -276, 285, -107, -276, 359, 284, -276, 23, + 86, -38, 288, -276, -42, 86, 136, 403, 2, -276, + 369, -276, 693, 41, -276, 311, 111, 15, 10, 409, + 217, 256, 256, 103, 104, 295, 321, 554, 256, 207, + 296, 20, 256, 256, 321, -276, 321, -52, 298, 115, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 387, 111, -276, 462, 18, + 299, -276, 136, -276, 315, 18, -276, 407, 14, 303, + -276, 256, -276, 464, -276, -276, -276, -276, 256, -276, + -276, -276, -276, 256, 256, 384, -276, 305, -276, -276, + 306, -276, -276, -276, -276, -276, 166, -276, 418, -276, + 218, -276, 256, -276, -276, 301, -276, -276, -276, -276, + -276, -276, 381, 117, 178, 133, 256, 256, -276, 409, + 377, 101, -276, -276, -276, 364, 494, 281, 321, 312, + 135, -276, 378, 318, 281, 281, 281, 281, 536, 536, + 536, 536, 207, 207, 55, 55, 55, 33, 316, -276, + -276, 80, 283, -276, 122, -276, 311, -276, 159, -276, + 314, -276, 22, -276, 420, -276, -276, -276, 136, 136, + -276, 483, 484, -276, 392, -276, -276, 419, 142, -276, + 256, 693, 256, 256, -276, 204, 192, 328, -276, 321, + 281, 135, 330, 168, -276, -276, -276, -276, -276, 331, + 405, -276, -276, -276, 429, 430, 431, 411, 14, 503, + -276, -276, -276, 388, -276, 340, 343, -276, 229, -276, + -276, 85, 344, 136, 205, -276, 256, -276, 554, 345, + 175, -276, -276, 22, 14, -276, -276, -276, 14, 213, + 342, 256, -276, -276, -276, -276, -276, -276, -276, -276, + 136, -276, -276, -276, -276, 266, 404, -25, 347, 256, + 195, 256, -276, 16, 136, -276, -276, 136, 346, 349, + -276 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1272,86 +987,88 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 29, 29, 0, 260, + 250, 0, 0, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 29, 29, 29, 0, 270, 3, 20, 18, 20, 17, 8, 9, 7, 11, 16, - 13, 14, 12, 15, 10, 0, 239, 0, 229, 72, - 32, 0, 43, 49, 49, 0, 0, 0, 0, 228, - 0, 70, 70, 0, 41, 0, 241, 242, 28, 25, - 27, 26, 1, 240, 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, 230, 211, 214, - 216, 217, 212, 213, 218, 0, 129, 131, 206, 207, - 208, 215, 209, 210, 31, 30, 0, 0, 76, 0, - 71, 0, 0, 0, 0, 106, 78, 39, 37, 39, - 69, 66, 67, 244, 243, 0, 119, 99, 0, 89, - 88, 112, 85, 84, 86, 96, 92, 0, 112, 0, - 0, 90, 33, 0, 48, 0, 240, 0, 0, 202, - 0, 0, 0, 0, 0, 0, 0, 204, 0, 105, - 134, 141, 142, 143, 136, 138, 144, 137, 157, 145, - 146, 147, 148, 140, 135, 150, 151, 0, 261, 0, - 0, 74, 0, 0, 77, 0, 35, 40, 23, 0, - 21, 103, 101, 127, 238, 126, 0, 111, 113, 118, - 126, 122, 124, 121, 132, 0, 46, 0, 0, 50, - 240, 100, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 0, 152, 0, 0, 0, 0, 0, 154, + 13, 14, 12, 15, 10, 0, 249, 0, 239, 79, + 32, 0, 43, 51, 50, 50, 0, 0, 0, 0, + 0, 238, 0, 77, 77, 0, 41, 0, 251, 252, + 28, 25, 27, 26, 1, 250, 2, 0, 6, 5, + 130, 0, 91, 92, 122, 75, 0, 140, 0, 0, + 0, 0, 50, 116, 36, 0, 83, 0, 0, 0, + 0, 0, 0, 42, 0, 0, 4, 0, 0, 110, + 0, 0, 104, 105, 103, 0, 107, 0, 0, 136, + 240, 221, 224, 226, 227, 222, 223, 228, 0, 139, + 141, 216, 217, 218, 225, 219, 220, 31, 30, 0, + 0, 83, 0, 0, 78, 0, 0, 0, 0, 116, + 88, 39, 37, 39, 76, 73, 74, 254, 253, 0, + 129, 109, 0, 99, 98, 122, 95, 94, 96, 106, + 102, 0, 122, 0, 0, 100, 33, 0, 49, 0, + 250, 0, 0, 0, 212, 0, 0, 0, 0, 0, + 0, 0, 214, 0, 115, 144, 151, 152, 153, 146, + 148, 154, 147, 167, 155, 156, 157, 158, 150, 145, + 160, 161, 0, 271, 0, 0, 81, 0, 0, 87, + 0, 35, 40, 23, 0, 21, 113, 111, 137, 248, + 136, 0, 121, 123, 128, 136, 132, 134, 131, 142, + 0, 46, 0, 0, 57, 250, 0, 110, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 163, 0, 162, + 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 0, 80, 79, 0, 0, 19, 0, - 0, 106, 102, 0, 236, 0, 237, 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, 203, 205, 0, 193, 194, 195, - 196, 197, 198, 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, 262, 0, 38, 0, 22, 240, 104, 219, 221, - 0, 223, 234, 222, 108, 128, 235, 114, 125, 123, - 44, 0, 0, 63, 0, 52, 51, 0, 180, 0, - 0, 0, 0, 174, 0, 0, 0, 199, 0, 165, - 0, 0, 0, 156, 200, 73, 24, 0, 0, 256, - 248, 254, 252, 255, 250, 0, 0, 0, 233, 227, - 231, 0, 98, 0, 0, 64, 190, 0, 0, 178, - 0, 177, 0, 181, 201, 0, 0, 172, 170, 234, - 0, 251, 253, 249, 0, 220, 235, 0, 58, 59, - 191, 192, 175, 179, 173, 171, 224, 245, 257, 0, - 110, 0, 0, 0, 0, 107, 0, 258, 246, 232, - 109, 202, 0, 247 + 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, + 85, 80, 90, 89, 0, 0, 19, 0, 0, 116, + 112, 0, 246, 0, 247, 143, 93, 97, 0, 127, + 126, 125, 101, 0, 0, 0, 61, 0, 64, 63, + 0, 69, 68, 62, 67, 60, 72, 45, 0, 47, + 83, 199, 0, 213, 215, 0, 203, 204, 205, 206, + 207, 208, 0, 0, 0, 0, 0, 0, 186, 0, + 0, 0, 159, 149, 178, 179, 0, 174, 0, 0, + 0, 165, 0, 177, 176, 192, 193, 194, 195, 196, + 197, 198, 169, 168, 171, 170, 172, 173, 0, 34, + 272, 0, 0, 38, 0, 22, 250, 114, 229, 231, + 0, 233, 244, 232, 118, 138, 245, 124, 135, 133, + 44, 0, 0, 70, 0, 59, 58, 56, 0, 190, + 0, 0, 0, 0, 184, 0, 0, 0, 209, 0, + 175, 0, 0, 0, 166, 210, 84, 86, 24, 0, + 0, 266, 258, 264, 262, 265, 260, 0, 0, 0, + 243, 237, 241, 0, 108, 0, 0, 71, 0, 48, + 200, 0, 0, 188, 0, 187, 0, 191, 211, 0, + 0, 182, 180, 244, 0, 261, 263, 259, 0, 230, + 245, 0, 65, 66, 53, 54, 55, 201, 202, 185, + 189, 183, 181, 234, 255, 267, 0, 120, 0, 0, + 0, 0, 117, 0, 268, 256, 242, 119, 212, 0, + 257 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -318, -318, -318, 422, -318, 470, -318, 217, -318, 166, - -318, -318, -318, -318, 241, -78, 376, -318, -318, -318, - 458, -318, 193, 126, -318, -318, 467, -318, -318, -318, - 395, -318, -318, 317, -156, -48, -318, 88, -64, -49, - -318, -318, -65, 294, -318, -318, -318, -116, -318, -318, - 35, -318, 232, -318, -318, 61, -238, -318, -173, 251, - -129, -124, -318, -318, -318, -318, -318, -318, 292, -318, - -318, -318, -318, -318, -318, -318, -318, -318, 64, -66, - -84, -318, -318, -88, -318, -318, -318, -317, 87, -318, - -318, -318, 1, -318, 92, 331, -318, -318, -318, -318, - 443, -318, -318, -318, -318, 80 + -276, -276, -276, 450, -276, 499, -276, 236, -276, 56, + -276, -276, -276, -276, 251, -81, 393, -276, -276, -276, + 1, -276, -276, -276, 221, 139, -276, -276, 488, -276, + -276, -276, -128, -276, 165, -276, -276, 336, -169, -75, + -276, 96, -67, -32, -276, -276, -73, 308, -276, -276, + -276, -121, -276, -276, -98, -276, 249, -276, -276, -20, + -232, -276, -127, 258, -133, -167, -276, -276, -276, -276, + -276, -276, 307, -276, -276, -276, -276, -276, -276, -276, + -276, -276, 68, -57, -82, -276, -276, -89, -276, -276, + -276, -275, 100, -276, -276, -276, 0, -276, 102, 337, + -276, -276, -276, -276, 465, -276, -276, -276, -276, 83 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 18, 19, 20, 21, 66, 209, 210, 22, 59, - 23, 125, 24, 25, 82, 137, 206, 26, 27, 28, - 78, 228, 229, 308, 385, 29, 88, 30, 31, 32, - 133, 33, 135, 136, 34, 151, 152, 153, 71, 102, - 103, 156, 72, 148, 211, 281, 282, 130, 422, 465, - 106, 217, 218, 293, 96, 161, 212, 115, 116, 213, - 214, 180, 181, 182, 183, 184, 185, 186, 238, 187, - 188, 189, 190, 191, 323, 192, 193, 194, 195, 196, - 118, 119, 120, 121, 122, 123, 367, 368, 369, 370, - 371, 48, 372, 418, 419, 420, 287, 35, 36, 56, - 57, 373, 415, 468, 64, 199 + -1, 18, 19, 20, 21, 68, 214, 215, 22, 61, + 23, 128, 24, 25, 85, 141, 211, 26, 27, 28, + 80, 46, 439, 233, 234, 316, 395, 29, 91, 30, + 31, 32, 137, 280, 281, 33, 139, 140, 34, 155, + 156, 157, 73, 105, 106, 160, 74, 152, 216, 289, + 290, 134, 434, 482, 109, 222, 223, 301, 99, 165, + 217, 118, 119, 218, 219, 185, 186, 187, 188, 189, + 190, 191, 244, 192, 193, 194, 195, 196, 332, 197, + 198, 199, 200, 201, 121, 122, 123, 124, 125, 126, + 377, 378, 379, 380, 381, 50, 382, 430, 431, 432, + 295, 35, 36, 58, 59, 383, 427, 485, 66, 204 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1359,156 +1076,172 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 179, 138, 138, 39, 332, 98, 42, 146, 139, 117, - 226, 49, 50, 108, 109, 110, 38, 314, 471, 204, - 147, 129, 408, 105, 464, 53, 85, 165, 219, 99, - 221, 223, 284, 37, 296, 99, 254, 154, 43, 284, - 154, 231, 38, 232, 237, 342, 80, 138, 83, 245, - 241, 291, 243, 197, 90, 246, 51, 158, 166, 409, - 100, 54, 343, 68, 410, 86, 100, 269, 44, 201, - 411, 412, 247, 274, 311, 387, 246, 292, 271, 127, - 128, 272, 169, 108, 109, 110, 52, 413, 339, 141, - 142, -257, 414, 247, 246, 159, 101, 224, 104, 445, - 362, 167, 101, 402, 364, 216, 324, 325, 111, 334, - 203, 247, 246, 160, 244, 340, 241, 335, 336, 68, - 170, 171, 172, 70, 337, 200, 338, 458, 40, 247, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 283, 246, 112, 113, 417, - 41, 154, 169, 108, 109, 110, 285, 97, 246, 173, - 45, 219, 436, 247, -225, 374, 378, 379, 289, 316, - 315, 177, 312, 69, 254, 247, 366, 114, 111, 143, - 391, 359, 60, 61, 46, 254, 215, 246, 222, 383, - 170, 171, 172, 220, 278, 174, 47, 279, 394, 395, - 265, 266, 267, 268, 247, 269, 384, 117, 175, 460, - 407, 117, 450, 138, 268, 399, 269, 112, 113, 380, - 327, 392, 309, 236, 246, 310, 431, 246, 55, 173, - 169, 108, 109, 110, 176, 177, 58, 62, 63, 328, - 328, 247, 178, 432, 247, 329, 393, 114, 111, 73, - 246, 169, 108, 109, 110, 236, 246, 65, 452, 397, - 427, 75, 429, 430, 283, 174, 396, 247, 170, 171, - 172, 360, 405, 247, 434, 163, 288, 401, 175, 76, - 68, 294, 246, 169, 108, 109, 110, 112, 113, 170, - 171, 172, 390, 317, 318, 319, 320, 321, 322, 247, - 74, 77, 408, 453, 176, 177, 406, 173, 426, 163, - 81, 283, 178, 84, 87, 438, 455, 114, 283, 283, - 91, 239, 171, 172, 469, 92, 111, 272, 173, 169, - 108, 109, 110, 467, 298, 470, 435, 94, 95, 409, - 299, 107, 126, 174, 410, 124, 129, 111, 300, 131, - 411, 412, 132, 134, 140, 108, 175, 69, 110, 145, - 173, 147, 149, 150, 174, 112, 113, 413, 171, 172, - 248, -257, 414, 155, 301, 157, 162, 175, 163, 111, - 164, 198, 176, 177, 202, 205, 112, 113, 208, 408, - 178, 302, 104, 303, 304, 114, 240, 225, 14, 227, - 242, 230, 249, 176, 177, 233, 173, 234, 305, 175, - 235, 178, 306, 273, 270, 276, 114, 280, 112, 113, - 277, 297, 283, 290, 307, 111, 409, 295, 68, 330, - 341, 410, 361, 333, 376, 176, 177, 411, 412, 381, - 339, 461, 240, 178, -226, 382, 389, 388, 114, 250, - 246, 400, 404, 403, 413, 175, 269, 421, 423, 414, - 416, 424, 425, 433, 112, 113, 437, 439, 440, 251, - 441, 442, 443, 444, 249, 446, 252, 253, 448, 447, - 449, 176, 177, 254, 255, 93, 451, 454, 459, 178, - 462, 473, 466, 67, 114, 232, 365, 256, 257, 258, - 259, 260, 79, 386, 261, 262, -259, 263, 264, 265, - 266, 267, 268, 1, 269, 207, 428, 363, 1, 89, - 275, 2, 377, 168, 249, 313, 2, 457, 3, 326, - 472, 456, 4, 3, 375, 144, 0, 4, 5, 463, - 0, 6, 7, 5, 0, 286, 6, 7, 0, 253, - 0, 0, 0, 8, 9, 254, 0, 0, 8, 9, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, - 0, 250, -260, -260, 0, 0, -260, -260, 0, 263, - 264, 265, 266, 267, 268, 398, 269, 0, 11, 0, - 249, 331, 12, 11, 0, 0, 0, 12, 0, 253, - 0, 0, 0, 0, 0, 254, 255, 13, 0, 249, - 0, 0, 13, 14, 0, 0, 0, 0, 14, 256, - 257, 258, 259, 260, 0, 0, 261, 262, 0, 263, - 264, 265, 266, 267, 268, 0, 269, 250, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 16, 17, - 0, 0, 15, 16, 17, 0, -260, 331, 0, 0, - 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, - 0, 254, 255, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 256, 257, 258, 259, 260, - 254, -260, 261, 262, 0, 263, 264, 265, 266, 267, - 268, 0, 269, 0, -260, -260, -260, 259, 260, 0, - 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, - 0, 269 + 184, 231, 39, 172, 101, 42, 142, 142, 143, 150, + 51, 52, 247, 323, 249, 70, 341, 38, 209, 488, + 120, 481, 111, 112, 113, 292, 292, 151, 224, 133, + 226, 228, 158, 162, 169, 158, 88, 43, 174, 111, + 112, 113, 108, 299, 348, 243, 81, 83, 55, 86, + 251, 37, 304, 142, 202, 93, 44, 220, 53, 277, + 286, 70, 278, 287, 225, 170, 319, 205, 252, 300, + 206, 349, 62, 63, 282, 89, 175, 176, 177, 247, + 130, 131, 102, 132, 56, 253, 45, 346, 54, 347, + 398, 145, 146, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 333, 334, + 229, 171, 252, 103, 38, 178, 250, 114, 413, 344, + 345, 208, 174, 111, 112, 113, 221, 40, 71, 253, + 252, 72, 173, 252, 114, 102, 163, 41, 174, 111, + 112, 113, 429, 293, 227, 291, 297, 253, 158, 104, + 253, 179, 371, 459, 164, 47, 115, 116, 374, 48, + 175, 176, 177, 260, 180, 224, 103, 100, 384, 324, + 388, 389, 325, 115, 116, 182, 175, 176, 177, 450, + 376, 410, 321, 475, 420, 260, 368, 343, 70, 117, + 147, 336, 397, 181, 182, 252, 57, 275, 107, 178, + 296, 183, 104, 405, 406, 302, 117, 419, 317, 242, + 337, 318, 253, 252, 351, 178, 338, 274, 114, 275, + 403, 421, 120, 142, 390, 242, 422, 252, 120, 477, + 253, 352, 423, 424, 114, 179, 320, 401, 420, 337, + 49, 237, 448, 238, 253, 404, 252, 416, 180, 425, + 167, 179, 467, -267, 426, 64, 60, 115, 116, 174, + 111, 112, 113, 253, 180, 393, 408, 441, 65, 443, + 444, 291, 407, 115, 116, 421, 369, 181, 182, 67, + 422, 402, 394, 412, 77, 183, 423, 424, 252, 418, + 117, 420, 167, 181, 182, 446, 75, 175, 176, 177, + 76, 183, 252, 425, 78, 253, 117, -267, 426, 440, + 79, 82, 291, 470, 252, 252, 445, 469, 84, 253, + 174, 111, 112, 113, 174, 111, 112, 113, 421, -235, + 255, 253, 253, 422, 87, 452, 178, 260, 291, 423, + 424, 90, 472, 478, 449, 291, 484, 94, 487, 326, + 327, 328, 329, 330, 331, 114, 425, 95, 245, 176, + 177, 426, 486, 176, 177, 278, 271, 272, 273, 274, + 97, 275, 179, 464, 465, 466, 98, -270, 110, 129, + 127, 133, 135, -236, 136, 180, 138, 254, 111, 144, + 71, 149, 479, 113, 115, 116, 159, 178, 151, 153, + 154, 178, 166, 161, 167, 259, 168, 203, 207, 210, + 213, 260, -270, 107, 181, 182, 114, 230, 14, 255, + 114, 232, 183, 236, 235, 239, 240, 117, -270, -270, + -270, 265, 266, 246, 241, 267, 268, 246, 269, 270, + 271, 272, 273, 274, 248, 275, 180, 276, 288, 279, + 180, 285, 284, 303, 291, 115, 116, 305, 298, 115, + 116, 339, 70, 342, 350, 370, 256, 386, 399, 372, + 400, 391, 392, 348, 252, 181, 182, 414, 411, 181, + 182, 415, 275, 183, 428, 433, 257, 183, 117, 435, + 436, 437, 117, 258, 259, 447, 438, 451, 453, 454, + 260, 261, 455, 456, 457, 458, 460, 462, 476, 461, + 463, 468, 471, 483, 238, 96, 490, 262, 263, 264, + 265, 266, 69, 375, 267, 268, -269, 269, 270, 271, + 272, 273, 274, 1, 275, 373, 212, 417, 1, 396, + 442, 2, 92, 255, 283, 322, 2, 387, 3, 385, + 335, 489, 4, 3, 474, 473, 294, 4, 5, 480, + 148, 6, 7, 5, 0, 0, 6, 7, 0, 0, + 0, 0, 0, 8, 9, 0, 0, 0, 8, 9, + 0, 0, 0, 0, 10, 255, 0, 0, 0, 10, + 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 255, 409, 0, 0, 0, 11, 0, + 340, 0, 12, 11, 0, 0, 0, 12, 259, 0, + 0, 0, 0, 0, 260, 261, 0, 13, 0, 0, + 0, 0, 13, 14, 0, 0, 0, 0, 14, 0, + 0, 262, 263, 264, 265, 266, 0, 0, 267, 268, + 256, 269, 270, 271, 272, 273, 274, 0, 275, 0, + 259, 0, 0, 0, 0, 0, 260, 15, 16, 17, + 340, 0, 15, 16, 17, 0, 0, 0, 259, 0, + 0, 0, 0, 0, 260, 261, -270, -270, 0, 0, + -270, -270, 0, 269, 270, 271, 272, 273, 274, 0, + 275, 262, 263, 264, 265, 266, 0, 0, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 306, 275, 0, + 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, + 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 310, 0, 311, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 315 }; static const yytype_int16 yycheck[] = { - 129, 85, 86, 2, 242, 69, 5, 95, 86, 75, - 166, 10, 11, 4, 5, 6, 3, 3, 3, 135, - 12, 78, 25, 72, 46, 19, 89, 89, 157, 9, - 159, 160, 3, 26, 50, 9, 130, 102, 75, 3, - 105, 163, 3, 165, 173, 99, 45, 131, 47, 178, - 174, 85, 176, 131, 53, 110, 75, 105, 120, 62, - 40, 55, 116, 53, 67, 128, 40, 161, 105, 133, - 73, 74, 127, 202, 230, 313, 110, 111, 164, 78, - 79, 167, 3, 4, 5, 6, 105, 90, 96, 88, - 89, 94, 95, 127, 110, 50, 76, 163, 72, 416, - 273, 163, 76, 341, 277, 154, 235, 236, 99, 164, - 167, 127, 110, 68, 178, 123, 240, 246, 247, 53, - 41, 42, 43, 35, 248, 59, 250, 444, 3, 127, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 167, 110, 138, 139, 120, - 3, 216, 3, 4, 5, 6, 120, 69, 110, 80, - 89, 290, 400, 127, 167, 281, 295, 296, 216, 233, - 156, 156, 164, 163, 130, 127, 163, 168, 99, 91, - 103, 269, 16, 17, 89, 130, 151, 110, 109, 99, - 41, 42, 43, 158, 164, 116, 93, 167, 327, 328, - 156, 157, 158, 159, 127, 161, 116, 273, 129, 447, - 366, 277, 164, 297, 159, 339, 161, 138, 139, 297, - 87, 87, 164, 106, 110, 167, 112, 110, 3, 80, - 3, 4, 5, 6, 155, 156, 140, 0, 166, 106, - 106, 127, 163, 103, 127, 112, 112, 168, 99, 3, - 110, 3, 4, 5, 6, 106, 110, 107, 112, 162, - 389, 163, 391, 392, 167, 116, 330, 127, 41, 42, - 43, 270, 164, 127, 398, 167, 215, 341, 129, 89, - 53, 220, 110, 3, 4, 5, 6, 138, 139, 41, - 42, 43, 120, 132, 133, 134, 135, 136, 137, 127, - 165, 122, 25, 432, 155, 156, 164, 80, 164, 167, - 3, 167, 163, 118, 122, 164, 164, 168, 167, 167, - 120, 41, 42, 43, 164, 167, 99, 167, 80, 3, - 4, 5, 6, 462, 24, 464, 400, 92, 119, 62, - 30, 3, 116, 116, 67, 4, 78, 99, 38, 88, - 73, 74, 163, 3, 41, 4, 129, 163, 6, 163, - 80, 12, 164, 164, 116, 138, 139, 90, 42, 43, - 17, 94, 95, 109, 64, 121, 164, 129, 167, 99, - 41, 3, 155, 156, 144, 107, 138, 139, 3, 25, - 163, 81, 72, 83, 84, 168, 116, 3, 107, 3, - 161, 120, 49, 155, 156, 163, 80, 163, 98, 129, - 163, 163, 102, 163, 93, 44, 168, 89, 138, 139, - 163, 88, 167, 167, 114, 99, 62, 50, 53, 163, - 163, 67, 3, 164, 3, 155, 156, 73, 74, 163, - 96, 77, 116, 163, 167, 163, 89, 164, 168, 96, - 110, 163, 162, 99, 90, 129, 161, 65, 6, 95, - 167, 6, 99, 164, 138, 139, 164, 164, 94, 116, - 73, 73, 73, 94, 49, 3, 123, 124, 164, 121, - 164, 155, 156, 130, 131, 63, 164, 164, 163, 163, - 126, 164, 163, 23, 168, 165, 279, 144, 145, 146, - 147, 148, 44, 310, 151, 152, 0, 154, 155, 156, - 157, 158, 159, 7, 161, 139, 390, 276, 7, 52, - 203, 15, 290, 128, 49, 231, 15, 440, 22, 237, - 466, 439, 26, 22, 283, 92, -1, 26, 32, 459, - -1, 35, 36, 32, -1, 214, 35, 36, -1, 124, - -1, -1, -1, 47, 48, 130, -1, -1, 47, 48, - -1, -1, -1, -1, 58, -1, -1, -1, -1, 58, - -1, 96, 147, 148, -1, -1, 151, 152, -1, 154, - 155, 156, 157, 158, 159, 110, 161, -1, 82, -1, - 49, 116, 86, 82, -1, -1, -1, 86, -1, 124, - -1, -1, -1, -1, -1, 130, 131, 101, -1, 49, - -1, -1, 101, 107, -1, -1, -1, -1, 107, 144, - 145, 146, 147, 148, -1, -1, 151, 152, -1, 154, - 155, 156, 157, 158, 159, -1, 161, 96, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 141, 142, 143, - -1, -1, 141, 142, 143, -1, 96, 116, -1, -1, - -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, - -1, 130, 131, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 144, 145, 146, 147, 148, - 130, 131, 151, 152, -1, 154, 155, 156, 157, 158, - 159, -1, 161, -1, 144, 145, 146, 147, 148, -1, - -1, 151, 152, -1, 154, 155, 156, 157, 158, 159, - -1, 161 + 133, 170, 2, 131, 71, 5, 88, 89, 89, 98, + 10, 11, 179, 3, 181, 53, 248, 3, 139, 3, + 77, 46, 4, 5, 6, 3, 3, 12, 161, 78, + 163, 164, 105, 108, 89, 108, 89, 56, 3, 4, + 5, 6, 74, 85, 96, 178, 45, 47, 19, 49, + 183, 26, 50, 135, 135, 55, 75, 155, 75, 167, + 167, 53, 170, 170, 162, 120, 235, 59, 110, 111, + 137, 123, 16, 17, 207, 128, 41, 42, 43, 246, + 80, 81, 9, 82, 55, 127, 105, 254, 105, 256, + 322, 91, 92, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 241, 242, + 167, 166, 110, 40, 3, 80, 183, 99, 350, 252, + 253, 170, 3, 4, 5, 6, 158, 3, 166, 127, + 110, 35, 132, 110, 99, 9, 50, 3, 3, 4, + 5, 6, 120, 120, 109, 170, 221, 127, 221, 76, + 127, 116, 279, 428, 68, 89, 138, 139, 285, 89, + 41, 42, 43, 130, 129, 298, 40, 71, 289, 159, + 303, 304, 239, 138, 139, 159, 41, 42, 43, 411, + 166, 348, 167, 458, 25, 130, 275, 167, 53, 171, + 94, 87, 320, 158, 159, 110, 3, 164, 72, 80, + 220, 166, 76, 336, 337, 225, 171, 376, 167, 106, + 106, 170, 127, 110, 99, 80, 112, 162, 99, 164, + 87, 62, 279, 305, 305, 106, 67, 110, 285, 461, + 127, 116, 73, 74, 99, 116, 236, 120, 25, 106, + 93, 166, 409, 168, 127, 112, 110, 167, 129, 90, + 170, 116, 167, 94, 95, 0, 140, 138, 139, 3, + 4, 5, 6, 127, 129, 99, 165, 400, 169, 402, + 403, 170, 339, 138, 139, 62, 276, 158, 159, 107, + 67, 103, 116, 350, 166, 166, 73, 74, 110, 167, + 171, 25, 170, 158, 159, 103, 3, 41, 42, 43, + 168, 166, 110, 90, 89, 127, 171, 94, 95, 167, + 122, 66, 170, 446, 110, 110, 112, 112, 3, 127, + 3, 4, 5, 6, 3, 4, 5, 6, 62, 170, + 49, 127, 127, 67, 118, 167, 80, 130, 170, 73, + 74, 122, 167, 77, 411, 170, 479, 120, 481, 132, + 133, 134, 135, 136, 137, 99, 90, 170, 41, 42, + 43, 95, 167, 42, 43, 170, 159, 160, 161, 162, + 92, 164, 116, 144, 145, 146, 119, 96, 3, 116, + 4, 78, 88, 170, 166, 129, 3, 17, 4, 41, + 166, 166, 126, 6, 138, 139, 109, 80, 12, 167, + 167, 80, 167, 121, 170, 124, 41, 3, 147, 107, + 3, 130, 131, 72, 158, 159, 99, 3, 107, 49, + 99, 3, 166, 126, 120, 166, 166, 171, 147, 148, + 149, 150, 151, 116, 166, 154, 155, 116, 157, 158, + 159, 160, 161, 162, 164, 164, 129, 93, 89, 166, + 129, 166, 44, 50, 170, 138, 139, 88, 170, 138, + 139, 166, 53, 167, 166, 3, 96, 3, 167, 170, + 89, 166, 166, 96, 110, 158, 159, 99, 166, 158, + 159, 165, 164, 166, 170, 65, 116, 166, 171, 6, + 6, 99, 171, 123, 124, 167, 77, 167, 167, 94, + 130, 131, 73, 73, 73, 94, 3, 167, 166, 121, + 167, 167, 167, 166, 168, 65, 167, 147, 148, 149, + 150, 151, 23, 287, 154, 155, 0, 157, 158, 159, + 160, 161, 162, 7, 164, 284, 143, 372, 7, 318, + 401, 15, 54, 49, 208, 237, 15, 298, 22, 291, + 243, 483, 26, 22, 454, 453, 219, 26, 32, 476, + 95, 35, 36, 32, -1, -1, 35, 36, -1, -1, + -1, -1, -1, 47, 48, -1, -1, -1, 47, 48, + -1, -1, -1, -1, 58, 49, -1, -1, -1, 58, + 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 49, 110, -1, -1, -1, 82, -1, + 116, -1, 86, 82, -1, -1, -1, 86, 124, -1, + -1, -1, -1, -1, 130, 131, -1, 101, -1, -1, + -1, -1, 101, 107, -1, -1, -1, -1, 107, -1, + -1, 147, 148, 149, 150, 151, -1, -1, 154, 155, + 96, 157, 158, 159, 160, 161, 162, -1, 164, -1, + 124, -1, -1, -1, -1, -1, 130, 141, 142, 143, + 116, -1, 141, 142, 143, -1, -1, -1, 124, -1, + -1, -1, -1, -1, 130, 131, 150, 151, -1, -1, + 154, 155, -1, 157, 158, 159, 160, 161, 162, -1, + 164, 147, 148, 149, 150, 151, -1, -1, 154, 155, + -1, 157, 158, 159, 160, 161, 162, 24, 164, -1, + -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, + -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 64, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 81, -1, 83, 84, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 98, -1, -1, -1, 102, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 114 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1516,85 +1249,88 @@ static const yytype_int16 yycheck[] = static const yytype_int16 yystos[] = { 0, 7, 15, 22, 26, 32, 35, 36, 47, 48, - 58, 82, 86, 101, 107, 141, 142, 143, 170, 171, - 172, 173, 177, 179, 181, 182, 186, 187, 188, 194, - 196, 197, 198, 200, 203, 266, 267, 26, 3, 261, - 3, 3, 261, 75, 105, 89, 89, 93, 260, 261, - 261, 75, 105, 19, 55, 3, 268, 269, 140, 178, - 178, 178, 0, 166, 273, 107, 174, 174, 53, 163, - 206, 207, 211, 3, 165, 163, 89, 122, 189, 189, - 261, 3, 183, 261, 118, 89, 128, 122, 195, 195, - 261, 120, 167, 172, 92, 119, 223, 206, 207, 9, - 40, 76, 208, 209, 72, 208, 219, 3, 4, 5, - 6, 99, 138, 139, 168, 226, 227, 248, 249, 250, - 251, 252, 253, 254, 4, 180, 116, 261, 261, 78, - 216, 88, 163, 199, 3, 201, 202, 184, 249, 184, - 41, 261, 261, 206, 269, 163, 252, 12, 212, 164, - 164, 204, 205, 206, 211, 109, 210, 121, 204, 50, - 68, 224, 164, 167, 41, 89, 120, 163, 199, 3, - 41, 42, 43, 80, 116, 129, 155, 156, 163, 229, - 230, 231, 232, 233, 234, 235, 236, 238, 239, 240, - 241, 242, 244, 245, 246, 247, 248, 184, 3, 274, - 59, 207, 144, 167, 216, 107, 185, 185, 3, 175, - 176, 213, 225, 228, 229, 219, 208, 220, 221, 229, - 219, 229, 109, 229, 248, 3, 203, 3, 190, 191, - 120, 163, 165, 163, 163, 163, 106, 229, 237, 41, - 116, 230, 161, 230, 207, 229, 110, 127, 17, 49, - 96, 116, 123, 124, 130, 131, 144, 145, 146, 147, - 148, 151, 152, 154, 155, 156, 157, 158, 159, 161, - 93, 164, 167, 163, 229, 202, 44, 163, 164, 167, - 89, 214, 215, 167, 3, 120, 264, 265, 224, 204, - 167, 85, 111, 222, 224, 50, 50, 88, 24, 30, - 38, 64, 81, 83, 84, 98, 102, 114, 192, 164, - 167, 203, 164, 212, 3, 156, 207, 132, 133, 134, - 135, 136, 137, 243, 229, 229, 237, 87, 106, 112, - 163, 116, 225, 164, 164, 229, 229, 230, 230, 96, - 123, 163, 99, 116, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 252, - 261, 3, 227, 183, 227, 176, 163, 255, 256, 257, - 258, 259, 261, 270, 216, 228, 3, 221, 229, 229, - 184, 163, 163, 99, 116, 193, 191, 225, 164, 89, - 120, 103, 87, 112, 229, 229, 207, 162, 110, 230, - 163, 207, 225, 99, 162, 164, 164, 203, 25, 62, - 67, 73, 74, 90, 95, 271, 167, 120, 262, 263, - 264, 65, 217, 6, 6, 99, 164, 229, 192, 229, - 229, 112, 103, 164, 230, 207, 225, 164, 164, 164, - 94, 73, 73, 73, 94, 256, 3, 121, 164, 164, - 164, 164, 112, 229, 164, 164, 263, 257, 256, 163, - 225, 77, 126, 274, 46, 218, 163, 229, 272, 164, - 229, 3, 247, 164 + 58, 82, 86, 101, 107, 141, 142, 143, 173, 174, + 175, 176, 180, 182, 184, 185, 189, 190, 191, 199, + 201, 202, 203, 207, 210, 273, 274, 26, 3, 268, + 3, 3, 268, 56, 75, 105, 193, 89, 89, 93, + 267, 268, 268, 75, 105, 19, 55, 3, 275, 276, + 140, 181, 181, 181, 0, 169, 280, 107, 177, 177, + 53, 166, 213, 214, 218, 3, 168, 166, 89, 122, + 192, 192, 66, 268, 3, 186, 268, 118, 89, 128, + 122, 200, 200, 268, 120, 170, 175, 92, 119, 230, + 213, 214, 9, 40, 76, 215, 216, 72, 215, 226, + 3, 4, 5, 6, 99, 138, 139, 171, 233, 234, + 255, 256, 257, 258, 259, 260, 261, 4, 183, 116, + 268, 268, 192, 78, 223, 88, 166, 204, 3, 208, + 209, 187, 256, 187, 41, 268, 268, 213, 276, 166, + 259, 12, 219, 167, 167, 211, 212, 213, 218, 109, + 217, 121, 211, 50, 68, 231, 167, 170, 41, 89, + 120, 166, 204, 268, 3, 41, 42, 43, 80, 116, + 129, 158, 159, 166, 236, 237, 238, 239, 240, 241, + 242, 243, 245, 246, 247, 248, 249, 251, 252, 253, + 254, 255, 187, 3, 281, 59, 214, 147, 170, 223, + 107, 188, 188, 3, 178, 179, 220, 232, 235, 236, + 226, 215, 227, 228, 236, 226, 236, 109, 236, 255, + 3, 210, 3, 195, 196, 120, 126, 166, 168, 166, + 166, 166, 106, 236, 244, 41, 116, 237, 164, 237, + 214, 236, 110, 127, 17, 49, 96, 116, 123, 124, + 130, 131, 147, 148, 149, 150, 151, 154, 155, 157, + 158, 159, 160, 161, 162, 164, 93, 167, 170, 166, + 205, 206, 236, 209, 44, 166, 167, 170, 89, 221, + 222, 170, 3, 120, 271, 272, 231, 211, 170, 85, + 111, 229, 231, 50, 50, 88, 24, 30, 38, 64, + 81, 83, 84, 98, 102, 114, 197, 167, 170, 210, + 268, 167, 219, 3, 159, 214, 132, 133, 134, 135, + 136, 137, 250, 236, 236, 244, 87, 106, 112, 166, + 116, 232, 167, 167, 236, 236, 237, 237, 96, 123, + 166, 99, 116, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 259, 268, + 3, 234, 170, 186, 234, 179, 166, 262, 263, 264, + 265, 266, 268, 277, 223, 235, 3, 228, 236, 236, + 187, 166, 166, 99, 116, 198, 196, 204, 232, 167, + 89, 120, 103, 87, 112, 236, 236, 214, 165, 110, + 237, 166, 214, 232, 99, 165, 167, 206, 167, 210, + 25, 62, 67, 73, 74, 90, 95, 278, 170, 120, + 269, 270, 271, 65, 224, 6, 6, 99, 77, 194, + 167, 236, 197, 236, 236, 112, 103, 167, 237, 214, + 232, 167, 167, 167, 94, 73, 73, 73, 94, 263, + 3, 121, 167, 167, 144, 145, 146, 167, 167, 112, + 236, 167, 167, 270, 264, 263, 166, 232, 77, 126, + 281, 46, 225, 166, 236, 279, 167, 236, 3, 254, + 167 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 169, 170, 171, 171, 172, 172, 172, 172, 172, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, - 174, 175, 175, 176, 176, 177, 177, 177, 178, 178, - 179, 180, 181, 181, 182, 182, 183, 184, 185, 185, - 186, 187, 187, 187, 188, 188, 188, 188, 189, 189, - 190, 190, 191, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 193, 193, 193, 194, 194, 194, 195, - 195, 196, 197, 198, 198, 199, 199, 200, 201, 201, - 202, 203, 203, 203, 204, 204, 205, 205, 206, 206, - 207, 207, 208, 209, 209, 209, 210, 210, 211, 212, - 212, 213, 214, 214, 215, 216, 216, 217, 217, 218, - 218, 219, 219, 220, 220, 221, 222, 222, 222, 223, - 223, 224, 224, 224, 224, 224, 224, 225, 225, 226, - 226, 227, 227, 228, 229, 229, 229, 229, 229, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 231, 231, 232, 232, 232, 232, 232, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 234, 234, - 235, 235, 235, 235, 236, 236, 236, 236, 237, 237, - 238, 238, 239, 239, 239, 239, 239, 239, 239, 240, - 240, 241, 242, 243, 243, 243, 243, 243, 243, 244, - 245, 246, 247, 247, 247, 247, 248, 248, 248, 248, - 248, 249, 250, 250, 251, 251, 252, 253, 254, 255, - 255, 256, 256, 257, 257, 258, 258, 259, 260, 261, - 261, 262, 262, 263, 263, 264, 264, 265, 265, 266, - 266, 267, 268, 268, 269, 270, 270, 270, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 272, 273, - 273, 274, 274 + 0, 172, 173, 174, 174, 175, 175, 175, 175, 175, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, + 177, 178, 178, 179, 179, 180, 180, 180, 181, 181, + 182, 183, 184, 184, 185, 185, 186, 187, 188, 188, + 189, 190, 190, 190, 191, 191, 191, 191, 191, 192, + 192, 193, 193, 194, 194, 194, 194, 195, 195, 196, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 198, 198, 198, 199, 199, 199, 200, 200, 201, 202, + 203, 203, 204, 204, 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, + 252, 253, 254, 254, 254, 254, 255, 255, 255, 255, + 255, 256, 257, 257, 258, 258, 259, 260, 261, 262, + 262, 263, 263, 264, 264, 265, 265, 266, 267, 268, + 268, 269, 269, 270, 270, 271, 271, 272, 272, 273, + 273, 274, 275, 275, 276, 277, 277, 277, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 279, 280, + 280, 281, 281 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1604,10 +1340,11 @@ static const yytype_int8 yyr2[] = 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, + 5, 2, 3, 2, 8, 7, 6, 7, 9, 3, + 0, 1, 0, 2, 2, 2, 0, 1, 3, 3, + 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, + 1, 2, 0, 4, 4, 3, 2, 0, 4, 2, + 6, 5, 3, 0, 3, 1, 3, 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, @@ -1630,10 +1367,10 @@ static const yytype_int8 yyr2[] = }; -enum { YYENOMEM = -2 }; - #define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = SQL_HSQL_EMPTY) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -1644,7 +1381,7 @@ enum { YYENOMEM = -2 }; #define YYBACKUP(Token, Value) \ do \ - if (yychar == SQL_HSQL_EMPTY) \ + if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ @@ -1659,9 +1396,10 @@ enum { YYENOMEM = -2 }; } \ while (0) -/* Backward compatibility with an undocumented macro. - Use SQL_HSQL_error or SQL_HSQL_UNDEF. */ -#define YYERRCODE SQL_HSQL_UNDEF +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -1709,8 +1447,8 @@ do { \ 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 YY_LOCATION_PRINT +# if defined HSQL_LTYPE_IS_TRIVIAL && HSQL_LTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ @@ -1740,22 +1478,22 @@ yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) return res; } -# define YY_LOCATION_PRINT(File, Loc) \ +# define YY_LOCATION_PRINT(File, Loc) \ yy_location_print_ (File, &(Loc)) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -# endif /* !defined YY_LOCATION_PRINT */ +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Kind, Value, Location, result, scanner); \ + Type, Value, Location, result, scanner); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -1766,8 +1504,7 @@ do { \ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) { FILE *yyoutput = yyo; YYUSE (yyoutput); @@ -1777,11 +1514,11 @@ yy_symbol_value_print (FILE *yyo, if (!yyvaluep) return; # ifdef YYPRINT - if (yykind < YYNTOKENS) - YYPRINT (yyo, yytoknum[yykind], *yyvaluep); + if (yytype < YYNTOKENS) + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YYUSE (yytype); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -1791,15 +1528,14 @@ yy_symbol_value_print (FILE *yyo, `---------------------------*/ static void -yy_symbol_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) { YYFPRINTF (yyo, "%s %s (", - yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); YY_LOCATION_PRINT (yyo, *yylocationp); YYFPRINTF (yyo, ": "); - yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, result, scanner); + yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, result, scanner); YYFPRINTF (yyo, ")"); } @@ -1832,8 +1568,7 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, - int yyrule, hsql::SQLParserResult* result, yyscan_t scanner) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, hsql::SQLParserResult* result, yyscan_t scanner) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; @@ -1845,9 +1580,9 @@ yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), - &yyvsp[(yyi + 1) - (yynrhs)], - &(yylsp[(yyi + 1) - (yynrhs)]), result, scanner); + yystos[+yyssp[yyi + 1 - yynrhs]], + &yyvsp[(yyi + 1) - (yynrhs)] + , &(yylsp[(yyi + 1) - (yynrhs)]) , result, scanner); YYFPRINTF (stderr, "\n"); } } @@ -1862,8 +1597,8 @@ do { \ multiple parsers can coexist. */ int yydebug; #else /* !HSQL_DEBUG */ -# define YYDPRINTF(Args) ((void) 0) -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !HSQL_DEBUG */ @@ -1886,61 +1621,12 @@ int yydebug; #endif -/* Context of a parse error. */ -typedef struct -{ - yy_state_t *yyssp; - yysymbol_kind_t yytoken; - YYLTYPE *yylloc; -} yypcontext_t; +#if YYERROR_VERBOSE -/* Put in YYARG at most YYARGN of the expected tokens given the - current YYCTX, and return the number of tokens stored in YYARG. If - YYARG is null, return the number of expected tokens (guaranteed to - be less than YYNTOKENS). Return YYENOMEM on memory exhaustion. - Return 0 if there are more than YYARGN expected tokens, yet fill - YYARG up to YYARGN. */ -static int -yypcontext_expected_tokens (const yypcontext_t *yyctx, - yysymbol_kind_t yyarg[], int yyargn) -{ - /* Actual size of YYARG. */ - int yycount = 0; - int yyn = yypact[+*yyctx->yyssp]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (!yyarg) - ++yycount; - else if (yycount == yyargn) - return 0; - else - yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx); - } - } - if (yyarg && yycount == 0 && 0 < yyargn) - yyarg[0] = YYSYMBOL_YYEMPTY; - return yycount; -} - - - - -#ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) -# else +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) +# else /* Return the length of YYSTR. */ static YYPTRDIFF_T yystrlen (const char *yystr) @@ -1950,13 +1636,13 @@ yystrlen (const char *yystr) continue; return yylen; } +# endif # endif -#endif -#ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * @@ -1970,10 +1656,10 @@ yystpcpy (char *yydest, const char *yysrc) return yyd - 1; } +# endif # endif -#endif -#ifndef yytnamerr +# ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string @@ -1988,6 +1674,7 @@ yytnamerr (char *yyres, const char *yystr) { YYPTRDIFF_T yyn = 0; char const *yyp = yystr; + for (;;) switch (*++yyp) { @@ -2021,15 +1708,31 @@ yytnamerr (char *yyres, const char *yystr) else return yystrlen (yystr); } -#endif +# endif +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ static int -yy_syntax_error_arguments (const yypcontext_t *yyctx, - yysymbol_kind_t yyarg[], int yyargn) +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + yy_state_t *yyssp, int yytoken) { + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Actual size of YYARG. */ int yycount = 0; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; + /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action @@ -2053,54 +1756,52 @@ yy_syntax_error_arguments (const yypcontext_t *yyctx, one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ - if (yyctx->yytoken != YYSYMBOL_YYEMPTY) + if (yytoken != YYEMPTY) { - int yyn; - if (yyarg) - yyarg[yycount] = yyctx->yytoken; - ++yycount; - yyn = yypcontext_expected_tokens (yyctx, - yyarg ? yyarg + 1 : yyarg, yyargn - 1); - if (yyn == YYENOMEM) - return YYENOMEM; - else - yycount += yyn; + int yyn = yypact[+*yyssp]; + YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + yysize = yysize0; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; + } + } + } } - return yycount; -} - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, - const yypcontext_t *yyctx) -{ - enum { YYARGS_MAX = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat: reported tokens (one for the "unexpected", - one per "expected"). */ - yysymbol_kind_t yyarg[YYARGS_MAX]; - /* Cumulated lengths of YYARG. */ - YYPTRDIFF_T yysize = 0; - - /* Actual size of YYARG. */ - int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX); - if (yycount == YYENOMEM) - return YYENOMEM; switch (yycount) { -#define YYCASE_(N, S) \ +# define YYCASE_(N, S) \ case N: \ yyformat = S; \ - break + break default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); @@ -2108,23 +1809,17 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -#undef YYCASE_ +# undef YYCASE_ } - /* Compute error message size. Don't count the "%s"s, but reserve - room for the terminator. */ - yysize = yystrlen (yyformat) - 2 * yycount + 1; { - int yyi; - for (yyi = 0; yyi < yycount; ++yyi) - { - YYPTRDIFF_T yysize1 - = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return YYENOMEM; - } + /* Don't count the "%s"s in the final size, but reserve room for + the terminator. */ + YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; } if (*yymsg_alloc < yysize) @@ -2133,7 +1828,7 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return -1; + return 1; } /* Avoid sprintf, as that infringes on the user's name space. @@ -2145,7 +1840,7 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { - yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]); + yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else @@ -2156,15 +1851,14 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, } return 0; } - +#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, - yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) { YYUSE (yyvaluep); YYUSE (yylocationp); @@ -2172,37 +1866,37 @@ yydestruct (const char *yymsg, YYUSE (scanner); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - switch (yykind) + switch (yytype) { case 3: /* IDENTIFIER */ -#line 149 "bison_parser.y" +#line 151 "bison_parser.y" { free( (((*yyvaluep).sval)) ); } -#line 2184 "bison_parser.cpp" +#line 1878 "bison_parser.cpp" break; case 4: /* STRING */ -#line 149 "bison_parser.y" +#line 151 "bison_parser.y" { free( (((*yyvaluep).sval)) ); } -#line 2190 "bison_parser.cpp" +#line 1884 "bison_parser.cpp" break; case 5: /* FLOATVAL */ -#line 147 "bison_parser.y" +#line 149 "bison_parser.y" { } -#line 2196 "bison_parser.cpp" +#line 1890 "bison_parser.cpp" break; case 6: /* INTVAL */ -#line 147 "bison_parser.y" +#line 149 "bison_parser.y" { } -#line 2202 "bison_parser.cpp" +#line 1896 "bison_parser.cpp" break; - case 171: /* statement_list */ -#line 150 "bison_parser.y" + case 174: /* statement_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).stmt_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).stmt_vec))) { @@ -2211,23 +1905,23 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).stmt_vec)); } -#line 2215 "bison_parser.cpp" +#line 1909 "bison_parser.cpp" break; - case 172: /* statement */ -#line 158 "bison_parser.y" + case 175: /* statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).statement)); } -#line 2221 "bison_parser.cpp" +#line 1915 "bison_parser.cpp" break; - case 173: /* preparable_statement */ -#line 158 "bison_parser.y" + case 176: /* preparable_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).statement)); } -#line 2227 "bison_parser.cpp" +#line 1921 "bison_parser.cpp" break; - case 174: /* opt_hints */ -#line 150 "bison_parser.y" + case 177: /* opt_hints */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2236,11 +1930,11 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).expr_vec)); } -#line 2240 "bison_parser.cpp" +#line 1934 "bison_parser.cpp" break; - case 175: /* hint_list */ -#line 150 "bison_parser.y" + case 178: /* hint_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2249,89 +1943,101 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).expr_vec)); } -#line 2253 "bison_parser.cpp" +#line 1947 "bison_parser.cpp" break; - case 176: /* hint */ -#line 158 "bison_parser.y" + case 179: /* hint */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2259 "bison_parser.cpp" +#line 1953 "bison_parser.cpp" break; - case 177: /* transaction_statement */ -#line 158 "bison_parser.y" + case 180: /* transaction_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).transaction_stmt)); } -#line 2265 "bison_parser.cpp" +#line 1959 "bison_parser.cpp" break; - case 179: /* prepare_statement */ -#line 158 "bison_parser.y" + case 182: /* prepare_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).prep_stmt)); } -#line 2271 "bison_parser.cpp" +#line 1965 "bison_parser.cpp" break; - case 180: /* prepare_target_query */ -#line 149 "bison_parser.y" + case 183: /* prepare_target_query */ +#line 151 "bison_parser.y" { free( (((*yyvaluep).sval)) ); } -#line 2277 "bison_parser.cpp" +#line 1971 "bison_parser.cpp" break; - case 181: /* execute_statement */ -#line 158 "bison_parser.y" + case 184: /* execute_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).exec_stmt)); } -#line 2283 "bison_parser.cpp" +#line 1977 "bison_parser.cpp" break; - case 182: /* import_statement */ -#line 158 "bison_parser.y" + case 185: /* import_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).import_stmt)); } -#line 2289 "bison_parser.cpp" +#line 1983 "bison_parser.cpp" break; - case 183: /* file_type */ -#line 147 "bison_parser.y" - { } -#line 2295 "bison_parser.cpp" - break; - - case 184: /* file_path */ + case 186: /* file_type */ #line 149 "bison_parser.y" + { } +#line 1989 "bison_parser.cpp" + break; + + case 187: /* file_path */ +#line 151 "bison_parser.y" { free( (((*yyvaluep).sval)) ); } -#line 2301 "bison_parser.cpp" +#line 1995 "bison_parser.cpp" break; - case 185: /* opt_file_type */ -#line 147 "bison_parser.y" + case 188: /* opt_file_type */ +#line 149 "bison_parser.y" { } -#line 2307 "bison_parser.cpp" +#line 2001 "bison_parser.cpp" break; - case 186: /* export_statement */ -#line 158 "bison_parser.y" + case 189: /* export_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).export_stmt)); } -#line 2313 "bison_parser.cpp" +#line 2007 "bison_parser.cpp" break; - case 187: /* show_statement */ -#line 158 "bison_parser.y" + case 190: /* show_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).show_stmt)); } -#line 2319 "bison_parser.cpp" +#line 2013 "bison_parser.cpp" break; - case 188: /* create_statement */ -#line 158 "bison_parser.y" + case 191: /* create_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).create_stmt)); } -#line 2325 "bison_parser.cpp" +#line 2019 "bison_parser.cpp" break; - case 189: /* opt_not_exists */ -#line 147 "bison_parser.y" + case 192: /* opt_not_exists */ +#line 149 "bison_parser.y" { } -#line 2331 "bison_parser.cpp" +#line 2025 "bison_parser.cpp" break; - case 190: /* column_def_commalist */ -#line 150 "bison_parser.y" + case 193: /* opt_unique */ +#line 149 "bison_parser.y" + { } +#line 2031 "bison_parser.cpp" + break; + + case 194: /* opt_index_type */ +#line 149 "bison_parser.y" + { } +#line 2037 "bison_parser.cpp" + break; + + case 195: /* column_def_commalist */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).column_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).column_vec))) { @@ -2340,59 +2046,59 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).column_vec)); } -#line 2344 "bison_parser.cpp" +#line 2050 "bison_parser.cpp" break; - case 191: /* column_def */ -#line 158 "bison_parser.y" + case 196: /* column_def */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).column_t)); } -#line 2350 "bison_parser.cpp" +#line 2056 "bison_parser.cpp" break; - case 192: /* column_type */ -#line 147 "bison_parser.y" + case 197: /* column_type */ +#line 149 "bison_parser.y" { } -#line 2356 "bison_parser.cpp" +#line 2062 "bison_parser.cpp" break; - case 193: /* opt_column_nullable */ -#line 147 "bison_parser.y" + case 198: /* opt_column_nullable */ +#line 149 "bison_parser.y" { } -#line 2362 "bison_parser.cpp" +#line 2068 "bison_parser.cpp" break; - case 194: /* drop_statement */ -#line 158 "bison_parser.y" + case 199: /* drop_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).drop_stmt)); } -#line 2368 "bison_parser.cpp" +#line 2074 "bison_parser.cpp" break; - case 195: /* opt_exists */ -#line 147 "bison_parser.y" + case 200: /* opt_exists */ +#line 149 "bison_parser.y" { } -#line 2374 "bison_parser.cpp" +#line 2080 "bison_parser.cpp" break; - case 196: /* delete_statement */ -#line 158 "bison_parser.y" + case 201: /* delete_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).delete_stmt)); } -#line 2380 "bison_parser.cpp" +#line 2086 "bison_parser.cpp" break; - case 197: /* truncate_statement */ -#line 158 "bison_parser.y" + case 202: /* truncate_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).delete_stmt)); } -#line 2386 "bison_parser.cpp" +#line 2092 "bison_parser.cpp" break; - case 198: /* insert_statement */ -#line 158 "bison_parser.y" + case 203: /* insert_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).insert_stmt)); } -#line 2392 "bison_parser.cpp" +#line 2098 "bison_parser.cpp" break; - case 199: /* opt_column_list */ -#line 150 "bison_parser.y" + case 204: /* opt_column_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).str_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).str_vec))) { @@ -2401,17 +2107,43 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).str_vec)); } -#line 2405 "bison_parser.cpp" +#line 2111 "bison_parser.cpp" break; - case 200: /* update_statement */ -#line 158 "bison_parser.y" + case 205: /* insert_list */ +#line 152 "bison_parser.y" + { + if ((((*yyvaluep).expr_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); +} +#line 2124 "bison_parser.cpp" + break; + + case 206: /* insert_list_list */ +#line 152 "bison_parser.y" + { + if ((((*yyvaluep).expr_vec_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).expr_vec_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec_vec)); +} +#line 2137 "bison_parser.cpp" + break; + + case 207: /* update_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).update_stmt)); } -#line 2411 "bison_parser.cpp" +#line 2143 "bison_parser.cpp" break; - case 201: /* update_clause_commalist */ -#line 150 "bison_parser.y" + case 208: /* update_clause_commalist */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).update_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).update_vec))) { @@ -2420,77 +2152,77 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).update_vec)); } -#line 2424 "bison_parser.cpp" +#line 2156 "bison_parser.cpp" break; - case 202: /* update_clause */ -#line 158 "bison_parser.y" + case 209: /* update_clause */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).update_t)); } -#line 2430 "bison_parser.cpp" +#line 2162 "bison_parser.cpp" break; - case 203: /* select_statement */ -#line 158 "bison_parser.y" + case 210: /* select_statement */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).select_stmt)); } -#line 2436 "bison_parser.cpp" +#line 2168 "bison_parser.cpp" break; - case 204: /* select_within_set_operation */ -#line 158 "bison_parser.y" + case 211: /* select_within_set_operation */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).select_stmt)); } -#line 2442 "bison_parser.cpp" +#line 2174 "bison_parser.cpp" break; - case 205: /* select_within_set_operation_no_parentheses */ -#line 158 "bison_parser.y" + case 212: /* select_within_set_operation_no_parentheses */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).select_stmt)); } -#line 2448 "bison_parser.cpp" +#line 2180 "bison_parser.cpp" break; - case 206: /* select_with_paren */ -#line 158 "bison_parser.y" + case 213: /* select_with_paren */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).select_stmt)); } -#line 2454 "bison_parser.cpp" +#line 2186 "bison_parser.cpp" break; - case 207: /* select_no_paren */ -#line 158 "bison_parser.y" + case 214: /* select_no_paren */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).select_stmt)); } -#line 2460 "bison_parser.cpp" +#line 2192 "bison_parser.cpp" break; - case 208: /* set_operator */ -#line 158 "bison_parser.y" + case 215: /* set_operator */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).set_operator_t)); } -#line 2466 "bison_parser.cpp" +#line 2198 "bison_parser.cpp" break; - case 209: /* set_type */ -#line 158 "bison_parser.y" + case 216: /* set_type */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).set_operator_t)); } -#line 2472 "bison_parser.cpp" +#line 2204 "bison_parser.cpp" break; - case 210: /* opt_all */ -#line 147 "bison_parser.y" + case 217: /* opt_all */ +#line 149 "bison_parser.y" { } -#line 2478 "bison_parser.cpp" +#line 2210 "bison_parser.cpp" break; - case 211: /* select_clause */ -#line 158 "bison_parser.y" + case 218: /* select_clause */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).select_stmt)); } -#line 2484 "bison_parser.cpp" +#line 2216 "bison_parser.cpp" break; - case 212: /* opt_distinct */ -#line 147 "bison_parser.y" + case 219: /* opt_distinct */ +#line 149 "bison_parser.y" { } -#line 2490 "bison_parser.cpp" +#line 2222 "bison_parser.cpp" break; - case 213: /* select_list */ -#line 150 "bison_parser.y" + case 220: /* select_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2499,41 +2231,41 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).expr_vec)); } -#line 2503 "bison_parser.cpp" +#line 2235 "bison_parser.cpp" break; - case 214: /* opt_from_clause */ -#line 158 "bison_parser.y" + case 221: /* opt_from_clause */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).table)); } -#line 2509 "bison_parser.cpp" +#line 2241 "bison_parser.cpp" break; - case 215: /* from_clause */ -#line 158 "bison_parser.y" + case 222: /* from_clause */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).table)); } -#line 2515 "bison_parser.cpp" +#line 2247 "bison_parser.cpp" break; - case 216: /* opt_where */ -#line 158 "bison_parser.y" + case 223: /* opt_where */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2521 "bison_parser.cpp" +#line 2253 "bison_parser.cpp" break; - case 217: /* opt_group */ -#line 158 "bison_parser.y" + case 224: /* opt_group */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).group_t)); } -#line 2527 "bison_parser.cpp" +#line 2259 "bison_parser.cpp" break; - case 218: /* opt_having */ -#line 158 "bison_parser.y" + case 225: /* opt_having */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2533 "bison_parser.cpp" +#line 2265 "bison_parser.cpp" break; - case 219: /* opt_order */ -#line 150 "bison_parser.y" + case 226: /* opt_order */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).order_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).order_vec))) { @@ -2542,11 +2274,11 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).order_vec)); } -#line 2546 "bison_parser.cpp" +#line 2278 "bison_parser.cpp" break; - case 220: /* order_list */ -#line 150 "bison_parser.y" + case 227: /* order_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).order_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).order_vec))) { @@ -2555,35 +2287,35 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).order_vec)); } -#line 2559 "bison_parser.cpp" +#line 2291 "bison_parser.cpp" break; - case 221: /* order_desc */ -#line 158 "bison_parser.y" + case 228: /* order_desc */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).order)); } -#line 2565 "bison_parser.cpp" +#line 2297 "bison_parser.cpp" break; - case 222: /* opt_order_type */ -#line 147 "bison_parser.y" + case 229: /* opt_order_type */ +#line 149 "bison_parser.y" { } -#line 2571 "bison_parser.cpp" +#line 2303 "bison_parser.cpp" break; - case 223: /* opt_top */ -#line 158 "bison_parser.y" + case 230: /* opt_top */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).limit)); } -#line 2577 "bison_parser.cpp" +#line 2309 "bison_parser.cpp" break; - case 224: /* opt_limit */ -#line 158 "bison_parser.y" + case 231: /* opt_limit */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).limit)); } -#line 2583 "bison_parser.cpp" +#line 2315 "bison_parser.cpp" break; - case 225: /* expr_list */ -#line 150 "bison_parser.y" + case 232: /* expr_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2592,11 +2324,11 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).expr_vec)); } -#line 2596 "bison_parser.cpp" +#line 2328 "bison_parser.cpp" break; - case 226: /* opt_literal_list */ -#line 150 "bison_parser.y" + case 233: /* opt_literal_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2605,11 +2337,11 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).expr_vec)); } -#line 2609 "bison_parser.cpp" +#line 2341 "bison_parser.cpp" break; - case 227: /* literal_list */ -#line 150 "bison_parser.y" + case 234: /* literal_list */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2618,191 +2350,191 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).expr_vec)); } -#line 2622 "bison_parser.cpp" +#line 2354 "bison_parser.cpp" break; - case 228: /* expr_alias */ -#line 158 "bison_parser.y" + case 235: /* expr_alias */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2628 "bison_parser.cpp" +#line 2360 "bison_parser.cpp" break; - case 229: /* expr */ -#line 158 "bison_parser.y" + case 236: /* expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2634 "bison_parser.cpp" +#line 2366 "bison_parser.cpp" break; - case 230: /* operand */ -#line 158 "bison_parser.y" + case 237: /* operand */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2640 "bison_parser.cpp" +#line 2372 "bison_parser.cpp" break; - case 231: /* scalar_expr */ -#line 158 "bison_parser.y" + case 238: /* scalar_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2646 "bison_parser.cpp" +#line 2378 "bison_parser.cpp" break; - case 232: /* unary_expr */ -#line 158 "bison_parser.y" + case 239: /* unary_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2652 "bison_parser.cpp" +#line 2384 "bison_parser.cpp" break; - case 233: /* binary_expr */ -#line 158 "bison_parser.y" + case 240: /* binary_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2658 "bison_parser.cpp" +#line 2390 "bison_parser.cpp" break; - case 234: /* logic_expr */ -#line 158 "bison_parser.y" + case 241: /* logic_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2664 "bison_parser.cpp" +#line 2396 "bison_parser.cpp" break; - case 235: /* in_expr */ -#line 158 "bison_parser.y" + case 242: /* in_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2670 "bison_parser.cpp" +#line 2402 "bison_parser.cpp" break; - case 236: /* case_expr */ -#line 158 "bison_parser.y" + case 243: /* case_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2676 "bison_parser.cpp" +#line 2408 "bison_parser.cpp" break; - case 237: /* case_list */ -#line 158 "bison_parser.y" + case 244: /* case_list */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2682 "bison_parser.cpp" +#line 2414 "bison_parser.cpp" break; - case 238: /* exists_expr */ -#line 158 "bison_parser.y" + case 245: /* exists_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2688 "bison_parser.cpp" +#line 2420 "bison_parser.cpp" break; - case 239: /* comp_expr */ -#line 158 "bison_parser.y" + case 246: /* comp_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2694 "bison_parser.cpp" +#line 2426 "bison_parser.cpp" break; - case 240: /* function_expr */ -#line 158 "bison_parser.y" + case 247: /* function_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2700 "bison_parser.cpp" +#line 2432 "bison_parser.cpp" break; - case 241: /* extract_expr */ -#line 158 "bison_parser.y" + case 248: /* extract_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2706 "bison_parser.cpp" +#line 2438 "bison_parser.cpp" break; - case 242: /* cast_expr */ -#line 158 "bison_parser.y" + case 249: /* cast_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2712 "bison_parser.cpp" +#line 2444 "bison_parser.cpp" break; - case 243: /* datetime_field */ -#line 147 "bison_parser.y" + case 250: /* datetime_field */ +#line 149 "bison_parser.y" { } -#line 2718 "bison_parser.cpp" +#line 2450 "bison_parser.cpp" break; - case 244: /* array_expr */ -#line 158 "bison_parser.y" + case 251: /* array_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2724 "bison_parser.cpp" +#line 2456 "bison_parser.cpp" break; - case 245: /* array_index */ -#line 158 "bison_parser.y" + case 252: /* array_index */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2730 "bison_parser.cpp" +#line 2462 "bison_parser.cpp" break; - case 246: /* between_expr */ -#line 158 "bison_parser.y" + case 253: /* between_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2736 "bison_parser.cpp" +#line 2468 "bison_parser.cpp" break; - case 247: /* column_name */ -#line 158 "bison_parser.y" + case 254: /* column_name */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2742 "bison_parser.cpp" +#line 2474 "bison_parser.cpp" break; - case 248: /* literal */ -#line 158 "bison_parser.y" + case 255: /* literal */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2748 "bison_parser.cpp" +#line 2480 "bison_parser.cpp" break; - case 249: /* string_literal */ -#line 158 "bison_parser.y" + case 256: /* string_literal */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2754 "bison_parser.cpp" +#line 2486 "bison_parser.cpp" break; - case 250: /* bool_literal */ -#line 158 "bison_parser.y" + case 257: /* bool_literal */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2760 "bison_parser.cpp" +#line 2492 "bison_parser.cpp" break; - case 251: /* num_literal */ -#line 158 "bison_parser.y" + case 258: /* num_literal */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2766 "bison_parser.cpp" +#line 2498 "bison_parser.cpp" break; - case 252: /* int_literal */ -#line 158 "bison_parser.y" + case 259: /* int_literal */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2772 "bison_parser.cpp" +#line 2504 "bison_parser.cpp" break; - case 253: /* null_literal */ -#line 158 "bison_parser.y" + case 260: /* null_literal */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2778 "bison_parser.cpp" +#line 2510 "bison_parser.cpp" break; - case 254: /* param_expr */ -#line 158 "bison_parser.y" + case 261: /* param_expr */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).expr)); } -#line 2784 "bison_parser.cpp" +#line 2516 "bison_parser.cpp" break; - case 255: /* table_ref */ -#line 158 "bison_parser.y" + case 262: /* table_ref */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).table)); } -#line 2790 "bison_parser.cpp" +#line 2522 "bison_parser.cpp" break; - case 256: /* table_ref_atomic */ -#line 158 "bison_parser.y" + case 263: /* table_ref_atomic */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).table)); } -#line 2796 "bison_parser.cpp" +#line 2528 "bison_parser.cpp" break; - case 257: /* nonjoin_table_ref_atomic */ -#line 158 "bison_parser.y" + case 264: /* nonjoin_table_ref_atomic */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).table)); } -#line 2802 "bison_parser.cpp" +#line 2534 "bison_parser.cpp" break; - case 258: /* table_ref_commalist */ -#line 150 "bison_parser.y" + case 265: /* table_ref_commalist */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).table_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).table_vec))) { @@ -2811,95 +2543,95 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).table_vec)); } -#line 2815 "bison_parser.cpp" +#line 2547 "bison_parser.cpp" break; - case 259: /* table_ref_name */ -#line 158 "bison_parser.y" + case 266: /* table_ref_name */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).table)); } -#line 2821 "bison_parser.cpp" +#line 2553 "bison_parser.cpp" break; - case 260: /* table_ref_name_no_alias */ -#line 158 "bison_parser.y" + case 267: /* table_ref_name_no_alias */ +#line 160 "bison_parser.y" { delete (((*yyvaluep).table)); } -#line 2827 "bison_parser.cpp" +#line 2559 "bison_parser.cpp" break; - case 261: /* table_name */ -#line 148 "bison_parser.y" - { free( (((*yyvaluep).table_name).name) ); free( (((*yyvaluep).table_name).schema) ); } -#line 2833 "bison_parser.cpp" - break; - - case 262: /* table_alias */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).alias_t)); } -#line 2839 "bison_parser.cpp" - break; - - case 263: /* opt_table_alias */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).alias_t)); } -#line 2845 "bison_parser.cpp" - break; - - case 264: /* alias */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).alias_t)); } -#line 2851 "bison_parser.cpp" - break; - - case 265: /* opt_alias */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).alias_t)); } -#line 2857 "bison_parser.cpp" - break; - - case 266: /* opt_with_clause */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).with_description_vec)); } -#line 2863 "bison_parser.cpp" - break; - - case 267: /* with_clause */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).with_description_vec)); } -#line 2869 "bison_parser.cpp" - break; - - case 268: /* with_description_list */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).with_description_vec)); } -#line 2875 "bison_parser.cpp" - break; - - case 269: /* with_description */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).with_description_t)); } -#line 2881 "bison_parser.cpp" - break; - - case 270: /* join_clause */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).table)); } -#line 2887 "bison_parser.cpp" - break; - - case 271: /* opt_join_type */ -#line 147 "bison_parser.y" - { } -#line 2893 "bison_parser.cpp" - break; - - case 272: /* join_condition */ -#line 158 "bison_parser.y" - { delete (((*yyvaluep).expr)); } -#line 2899 "bison_parser.cpp" - break; - - case 274: /* ident_commalist */ + case 268: /* table_name */ #line 150 "bison_parser.y" + { free( (((*yyvaluep).table_name).name) ); free( (((*yyvaluep).table_name).schema) ); } +#line 2565 "bison_parser.cpp" + break; + + case 269: /* table_alias */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2571 "bison_parser.cpp" + break; + + case 270: /* opt_table_alias */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2577 "bison_parser.cpp" + break; + + case 271: /* alias */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2583 "bison_parser.cpp" + break; + + case 272: /* opt_alias */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2589 "bison_parser.cpp" + break; + + case 273: /* opt_with_clause */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).with_description_vec)); } +#line 2595 "bison_parser.cpp" + break; + + case 274: /* with_clause */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).with_description_vec)); } +#line 2601 "bison_parser.cpp" + break; + + case 275: /* with_description_list */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).with_description_vec)); } +#line 2607 "bison_parser.cpp" + break; + + case 276: /* with_description */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).with_description_t)); } +#line 2613 "bison_parser.cpp" + break; + + case 277: /* join_clause */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2619 "bison_parser.cpp" + break; + + case 278: /* opt_join_type */ +#line 149 "bison_parser.y" + { } +#line 2625 "bison_parser.cpp" + break; + + case 279: /* join_condition */ +#line 160 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2631 "bison_parser.cpp" + break; + + case 281: /* ident_commalist */ +#line 152 "bison_parser.y" { if ((((*yyvaluep).str_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).str_vec))) { @@ -2908,7 +2640,7 @@ yydestruct (const char *yymsg, } delete (((*yyvaluep).str_vec)); } -#line 2912 "bison_parser.cpp" +#line 2644 "bison_parser.cpp" break; default: @@ -2920,8 +2652,6 @@ yydestruct (const char *yymsg, - - /*----------. | yyparse. | `----------*/ @@ -2962,9 +2692,6 @@ YYLTYPE yylloc = yyloc_default; Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* Their size. */ - YYPTRDIFF_T yystacksize; - /* The state stack. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss; @@ -2980,23 +2707,26 @@ YYLTYPE yylloc = yyloc_default; YYLTYPE *yyls; YYLTYPE *yylsp; + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + + YYPTRDIFF_T yystacksize; + int yyn; - /* The return value of yyparse. */ int yyresult; /* Lookahead token as an internal (translated) token number. */ - yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; + int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[3]; - +#if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; +#endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) @@ -3004,19 +2734,17 @@ YYLTYPE yylloc = yyloc_default; Keep to zero when no symbol should be popped. */ int yylen = 0; - yynerrs = 0; - yystate = 0; - yyerrstatus = 0; - - yystacksize = YYINITDEPTH; yyssp = yyss = yyssa; yyvsp = yyvs = yyvsa; yylsp = yyls = yylsa; - + yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); - yychar = SQL_HSQL_EMPTY; /* Cause a token to be read. */ + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ /* User initialization code. */ #line 73 "bison_parser.y" @@ -3030,7 +2758,7 @@ YYLTYPE yylloc = yyloc_default; yylloc.string_length = 0; } -#line 3034 "bison_parser.cpp" +#line 2762 "bison_parser.cpp" yylsp[0] = yylloc; goto yysetstate; @@ -3054,7 +2782,6 @@ yysetstate: YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END - YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -3104,7 +2831,7 @@ yysetstate: YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -3144,30 +2871,18 @@ yybackup: /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ - if (yychar == SQL_HSQL_EMPTY) + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token\n")); + YYDPRINTF ((stderr, "Reading a token: ")); yychar = yylex (&yylval, &yylloc, scanner); } - if (yychar <= SQL_YYEOF) + if (yychar <= YYEOF) { - yychar = SQL_YYEOF; - yytoken = YYSYMBOL_YYEOF; + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } - else if (yychar == SQL_HSQL_error) - { - /* The scanner already issued an error message, process directly - to error recovery. But do not keep the error token as - lookahead, it is too special and may lead us to an endless - loop in error recovery. */ - yychar = SQL_HSQL_UNDEF; - yytoken = YYSYMBOL_YYerror; - yyerror_range[1] = yylloc; - goto yyerrlab1; - } else { yytoken = YYTRANSLATE (yychar); @@ -3202,7 +2917,7 @@ yybackup: *++yylsp = yylloc; /* Discard the shifted token. */ - yychar = SQL_HSQL_EMPTY; + yychar = YYEMPTY; goto yynewstate; @@ -3240,7 +2955,7 @@ yyreduce: switch (yyn) { case 2: -#line 269 "bison_parser.y" +#line 274 "bison_parser.y" { for (SQLStatement* stmt : *(yyvsp[-1].stmt_vec)) { // Transfers ownership of the statement. @@ -3258,247 +2973,247 @@ yyreduce: } delete (yyvsp[-1].stmt_vec); } -#line 3262 "bison_parser.cpp" +#line 2977 "bison_parser.cpp" break; case 3: -#line 290 "bison_parser.y" +#line 295 "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 3273 "bison_parser.cpp" +#line 2988 "bison_parser.cpp" break; case 4: -#line 296 "bison_parser.y" +#line 301 "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 3284 "bison_parser.cpp" +#line 2999 "bison_parser.cpp" break; case 5: -#line 305 "bison_parser.y" +#line 310 "bison_parser.y" { (yyval.statement) = (yyvsp[-1].prep_stmt); (yyval.statement)->hints = (yyvsp[0].expr_vec); } -#line 3293 "bison_parser.cpp" +#line 3008 "bison_parser.cpp" break; case 6: -#line 309 "bison_parser.y" +#line 314 "bison_parser.y" { (yyval.statement) = (yyvsp[-1].statement); (yyval.statement)->hints = (yyvsp[0].expr_vec); } -#line 3302 "bison_parser.cpp" +#line 3017 "bison_parser.cpp" break; case 7: -#line 313 "bison_parser.y" +#line 318 "bison_parser.y" { (yyval.statement) = (yyvsp[0].show_stmt); } -#line 3310 "bison_parser.cpp" +#line 3025 "bison_parser.cpp" break; case 8: -#line 316 "bison_parser.y" +#line 321 "bison_parser.y" { (yyval.statement) = (yyvsp[0].import_stmt); } -#line 3318 "bison_parser.cpp" +#line 3033 "bison_parser.cpp" break; case 9: -#line 319 "bison_parser.y" +#line 324 "bison_parser.y" { (yyval.statement) = (yyvsp[0].export_stmt); } -#line 3326 "bison_parser.cpp" +#line 3041 "bison_parser.cpp" break; case 10: -#line 326 "bison_parser.y" +#line 331 "bison_parser.y" { (yyval.statement) = (yyvsp[0].select_stmt); } -#line 3332 "bison_parser.cpp" +#line 3047 "bison_parser.cpp" break; case 11: -#line 327 "bison_parser.y" +#line 332 "bison_parser.y" { (yyval.statement) = (yyvsp[0].create_stmt); } -#line 3338 "bison_parser.cpp" +#line 3053 "bison_parser.cpp" break; case 12: -#line 328 "bison_parser.y" +#line 333 "bison_parser.y" { (yyval.statement) = (yyvsp[0].insert_stmt); } -#line 3344 "bison_parser.cpp" +#line 3059 "bison_parser.cpp" break; case 13: -#line 329 "bison_parser.y" +#line 334 "bison_parser.y" { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 3350 "bison_parser.cpp" +#line 3065 "bison_parser.cpp" break; case 14: -#line 330 "bison_parser.y" +#line 335 "bison_parser.y" { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 3356 "bison_parser.cpp" +#line 3071 "bison_parser.cpp" break; case 15: -#line 331 "bison_parser.y" +#line 336 "bison_parser.y" { (yyval.statement) = (yyvsp[0].update_stmt); } -#line 3362 "bison_parser.cpp" +#line 3077 "bison_parser.cpp" break; case 16: -#line 332 "bison_parser.y" +#line 337 "bison_parser.y" { (yyval.statement) = (yyvsp[0].drop_stmt); } -#line 3368 "bison_parser.cpp" +#line 3083 "bison_parser.cpp" break; case 17: -#line 333 "bison_parser.y" +#line 338 "bison_parser.y" { (yyval.statement) = (yyvsp[0].exec_stmt); } -#line 3374 "bison_parser.cpp" +#line 3089 "bison_parser.cpp" break; case 18: -#line 334 "bison_parser.y" +#line 339 "bison_parser.y" { (yyval.statement) = (yyvsp[0].transaction_stmt); } -#line 3380 "bison_parser.cpp" +#line 3095 "bison_parser.cpp" break; case 19: -#line 343 "bison_parser.y" +#line 348 "bison_parser.y" { (yyval.expr_vec) = (yyvsp[-1].expr_vec); } -#line 3386 "bison_parser.cpp" +#line 3101 "bison_parser.cpp" break; case 20: -#line 344 "bison_parser.y" +#line 349 "bison_parser.y" { (yyval.expr_vec) = nullptr; } -#line 3392 "bison_parser.cpp" +#line 3107 "bison_parser.cpp" break; case 21: -#line 349 "bison_parser.y" +#line 354 "bison_parser.y" { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 3398 "bison_parser.cpp" +#line 3113 "bison_parser.cpp" break; case 22: -#line 350 "bison_parser.y" +#line 355 "bison_parser.y" { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 3404 "bison_parser.cpp" +#line 3119 "bison_parser.cpp" break; case 23: -#line 354 "bison_parser.y" +#line 359 "bison_parser.y" { (yyval.expr) = Expr::make(kExprHint); (yyval.expr)->name = (yyvsp[0].sval); } -#line 3413 "bison_parser.cpp" +#line 3128 "bison_parser.cpp" break; case 24: -#line 358 "bison_parser.y" +#line 363 "bison_parser.y" { (yyval.expr) = Expr::make(kExprHint); (yyval.expr)->name = (yyvsp[-3].sval); (yyval.expr)->exprList = (yyvsp[-1].expr_vec); } -#line 3423 "bison_parser.cpp" +#line 3138 "bison_parser.cpp" break; case 25: -#line 370 "bison_parser.y" +#line 375 "bison_parser.y" { (yyval.transaction_stmt) = new TransactionStatement(kBeginTransaction); } -#line 3431 "bison_parser.cpp" +#line 3146 "bison_parser.cpp" break; case 26: -#line 373 "bison_parser.y" +#line 378 "bison_parser.y" { (yyval.transaction_stmt) = new TransactionStatement(kRollbackTransaction); } -#line 3439 "bison_parser.cpp" +#line 3154 "bison_parser.cpp" break; case 27: -#line 376 "bison_parser.y" +#line 381 "bison_parser.y" { (yyval.transaction_stmt) = new TransactionStatement(kCommitTransaction); } -#line 3447 "bison_parser.cpp" +#line 3162 "bison_parser.cpp" break; case 30: -#line 390 "bison_parser.y" +#line 395 "bison_parser.y" { (yyval.prep_stmt) = new PrepareStatement(); (yyval.prep_stmt)->name = (yyvsp[-2].sval); (yyval.prep_stmt)->query = (yyvsp[0].sval); } -#line 3457 "bison_parser.cpp" +#line 3172 "bison_parser.cpp" break; case 32: -#line 400 "bison_parser.y" +#line 405 "bison_parser.y" { (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[0].sval); } -#line 3466 "bison_parser.cpp" +#line 3181 "bison_parser.cpp" break; case 33: -#line 404 "bison_parser.y" +#line 409 "bison_parser.y" { (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[-3].sval); (yyval.exec_stmt)->parameters = (yyvsp[-1].expr_vec); } -#line 3476 "bison_parser.cpp" +#line 3191 "bison_parser.cpp" break; case 34: -#line 418 "bison_parser.y" +#line 423 "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 3487 "bison_parser.cpp" +#line 3202 "bison_parser.cpp" break; case 35: -#line 424 "bison_parser.y" +#line 429 "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 3498 "bison_parser.cpp" +#line 3213 "bison_parser.cpp" break; case 36: -#line 433 "bison_parser.y" +#line 438 "bison_parser.y" { if (strcasecmp((yyvsp[0].sval), "csv") == 0) { (yyval.import_type_t) = kImportCSV; @@ -3513,70 +3228,70 @@ yyreduce: } free((yyvsp[0].sval)); } -#line 3517 "bison_parser.cpp" +#line 3232 "bison_parser.cpp" break; case 37: -#line 450 "bison_parser.y" +#line 455 "bison_parser.y" { (yyval.sval) = strdup((yyvsp[0].expr)->name); delete (yyvsp[0].expr); } -#line 3523 "bison_parser.cpp" +#line 3238 "bison_parser.cpp" break; case 38: -#line 454 "bison_parser.y" +#line 459 "bison_parser.y" { (yyval.import_type_t) = (yyvsp[0].import_type_t); } -#line 3531 "bison_parser.cpp" +#line 3246 "bison_parser.cpp" break; case 39: -#line 457 "bison_parser.y" +#line 462 "bison_parser.y" { (yyval.import_type_t) = kImportAuto; } -#line 3537 "bison_parser.cpp" +#line 3252 "bison_parser.cpp" break; case 40: -#line 466 "bison_parser.y" +#line 471 "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 3548 "bison_parser.cpp" +#line 3263 "bison_parser.cpp" break; case 41: -#line 480 "bison_parser.y" +#line 485 "bison_parser.y" { (yyval.show_stmt) = new ShowStatement(kShowTables); } -#line 3556 "bison_parser.cpp" +#line 3271 "bison_parser.cpp" break; case 42: -#line 483 "bison_parser.y" +#line 488 "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 3566 "bison_parser.cpp" +#line 3281 "bison_parser.cpp" break; case 43: -#line 488 "bison_parser.y" +#line 493 "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 3576 "bison_parser.cpp" +#line 3291 "bison_parser.cpp" break; case 44: -#line 502 "bison_parser.y" +#line 507 "bison_parser.y" { (yyval.create_stmt) = new CreateStatement(kCreateTableFromTbl); (yyval.create_stmt)->ifNotExists = (yyvsp[-5].bval); @@ -3590,11 +3305,11 @@ yyreduce: free((yyvsp[-2].sval)); (yyval.create_stmt)->filePath = (yyvsp[0].sval); } -#line 3594 "bison_parser.cpp" +#line 3309 "bison_parser.cpp" break; case 45: -#line 515 "bison_parser.y" +#line 520 "bison_parser.y" { (yyval.create_stmt) = new CreateStatement(kCreateTable); (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); @@ -3602,11 +3317,11 @@ yyreduce: (yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name; (yyval.create_stmt)->columns = (yyvsp[-1].column_vec); } -#line 3606 "bison_parser.cpp" +#line 3321 "bison_parser.cpp" break; case 46: -#line 522 "bison_parser.y" +#line 527 "bison_parser.y" { (yyval.create_stmt) = new CreateStatement(kCreateTable); (yyval.create_stmt)->ifNotExists = (yyvsp[-3].bval); @@ -3614,11 +3329,11 @@ yyreduce: (yyval.create_stmt)->tableName = (yyvsp[-2].table_name).name; (yyval.create_stmt)->select = (yyvsp[0].select_stmt); } -#line 3618 "bison_parser.cpp" +#line 3333 "bison_parser.cpp" break; case 47: -#line 529 "bison_parser.y" +#line 534 "bison_parser.y" { (yyval.create_stmt) = new CreateStatement(kCreateView); (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); @@ -3627,198 +3342,248 @@ yyreduce: (yyval.create_stmt)->viewColumns = (yyvsp[-2].str_vec); (yyval.create_stmt)->select = (yyvsp[0].select_stmt); } -#line 3631 "bison_parser.cpp" +#line 3346 "bison_parser.cpp" break; case 48: -#line 540 "bison_parser.y" - { (yyval.bval) = true; } -#line 3637 "bison_parser.cpp" +#line 542 "bison_parser.y" + { + (yyval.create_stmt) = new CreateStatement(kCreateIndex); + (yyval.create_stmt)->ifNotExists = (yyvsp[-5].bval); + (yyval.create_stmt)->schema = (yyvsp[-2].table_name).schema; + (yyval.create_stmt)->tableName = (yyvsp[-2].table_name).name; + (yyval.create_stmt)->viewColumns = (yyvsp[-1].str_vec); + (yyval.create_stmt)->indexName = (yyvsp[-4].table_name).name; + (yyval.create_stmt)->indexType = IndexType((yyvsp[0].index_data_structure_type_t), (yyvsp[-7].bval)); + } +#line 3360 "bison_parser.cpp" break; case 49: -#line 541 "bison_parser.y" - { (yyval.bval) = false; } -#line 3643 "bison_parser.cpp" +#line 554 "bison_parser.y" + { (yyval.bval) = true; } +#line 3366 "bison_parser.cpp" break; case 50: -#line 545 "bison_parser.y" - { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } -#line 3649 "bison_parser.cpp" +#line 555 "bison_parser.y" + { (yyval.bval) = false; } +#line 3372 "bison_parser.cpp" break; case 51: -#line 546 "bison_parser.y" - { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } -#line 3655 "bison_parser.cpp" +#line 559 "bison_parser.y" + { (yyval.bval) = true; } +#line 3378 "bison_parser.cpp" break; case 52: -#line 550 "bison_parser.y" - { - (yyval.column_t) = new ColumnDefinition((yyvsp[-2].sval), (yyvsp[-1].column_type_t), (yyvsp[0].bval)); - } -#line 3663 "bison_parser.cpp" +#line 560 "bison_parser.y" + { (yyval.bval) = false; } +#line 3384 "bison_parser.cpp" break; case 53: -#line 556 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::INT}; } -#line 3669 "bison_parser.cpp" +#line 564 "bison_parser.y" + { (yyval.index_data_structure_type_t) = IndexDataStructureType::BTREE; } +#line 3390 "bison_parser.cpp" break; case 54: -#line 557 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::INT}; } -#line 3675 "bison_parser.cpp" +#line 565 "bison_parser.y" + { (yyval.index_data_structure_type_t) = IndexDataStructureType::HASHTABLE; } +#line 3396 "bison_parser.cpp" break; case 55: -#line 558 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::LONG}; } -#line 3681 "bison_parser.cpp" +#line 566 "bison_parser.y" + { (yyval.index_data_structure_type_t) = IndexDataStructureType::SKIPLIST; } +#line 3402 "bison_parser.cpp" break; case 56: -#line 559 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::FLOAT}; } -#line 3687 "bison_parser.cpp" +#line 567 "bison_parser.y" + { (yyval.index_data_structure_type_t) = IndexDataStructureType::BTREE; } +#line 3408 "bison_parser.cpp" break; case 57: -#line 560 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::DOUBLE}; } -#line 3693 "bison_parser.cpp" +#line 572 "bison_parser.y" + { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } +#line 3414 "bison_parser.cpp" break; case 58: -#line 561 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; } -#line 3699 "bison_parser.cpp" +#line 573 "bison_parser.y" + { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } +#line 3420 "bison_parser.cpp" break; case 59: -#line 562 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::CHAR, (yyvsp[-1].ival)}; } -#line 3705 "bison_parser.cpp" +#line 577 "bison_parser.y" + { + (yyval.column_t) = new ColumnDefinition((yyvsp[-2].sval), (yyvsp[-1].column_type_t), (yyvsp[0].bval)); + } +#line 3428 "bison_parser.cpp" break; case 60: -#line 563 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::TEXT}; } -#line 3711 "bison_parser.cpp" +#line 583 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::INT}; } +#line 3434 "bison_parser.cpp" break; case 61: -#line 564 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::DATETIME}; } -#line 3717 "bison_parser.cpp" +#line 584 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::INT}; } +#line 3440 "bison_parser.cpp" break; case 62: -#line 565 "bison_parser.y" - { (yyval.column_type_t) = ColumnType{DataType::DATE}; } -#line 3723 "bison_parser.cpp" +#line 585 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::LONG}; } +#line 3446 "bison_parser.cpp" break; case 63: -#line 569 "bison_parser.y" - { (yyval.bval) = true; } -#line 3729 "bison_parser.cpp" +#line 586 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::FLOAT}; } +#line 3452 "bison_parser.cpp" break; case 64: -#line 570 "bison_parser.y" - { (yyval.bval) = false; } -#line 3735 "bison_parser.cpp" +#line 587 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::DOUBLE}; } +#line 3458 "bison_parser.cpp" break; case 65: -#line 571 "bison_parser.y" - { (yyval.bval) = false; } -#line 3741 "bison_parser.cpp" +#line 588 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; } +#line 3464 "bison_parser.cpp" break; case 66: -#line 581 "bison_parser.y" +#line 589 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::CHAR, (yyvsp[-1].ival)}; } +#line 3470 "bison_parser.cpp" + break; + + case 67: +#line 590 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::TEXT}; } +#line 3476 "bison_parser.cpp" + break; + + case 68: +#line 591 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::DATETIME}; } +#line 3482 "bison_parser.cpp" + break; + + case 69: +#line 592 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::DATE}; } +#line 3488 "bison_parser.cpp" + break; + + case 70: +#line 596 "bison_parser.y" + { (yyval.bval) = true; } +#line 3494 "bison_parser.cpp" + break; + + case 71: +#line 597 "bison_parser.y" + { (yyval.bval) = false; } +#line 3500 "bison_parser.cpp" + break; + + case 72: +#line 598 "bison_parser.y" + { (yyval.bval) = false; } +#line 3506 "bison_parser.cpp" + break; + + case 73: +#line 608 "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 3752 "bison_parser.cpp" +#line 3517 "bison_parser.cpp" break; - case 67: -#line 587 "bison_parser.y" + case 74: +#line 614 "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 3763 "bison_parser.cpp" +#line 3528 "bison_parser.cpp" break; - case 68: -#line 593 "bison_parser.y" + case 75: +#line 620 "bison_parser.y" { (yyval.drop_stmt) = new DropStatement(kDropPreparedStatement); (yyval.drop_stmt)->ifExists = false; (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 3773 "bison_parser.cpp" +#line 3538 "bison_parser.cpp" break; - case 69: -#line 601 "bison_parser.y" + case 76: +#line 628 "bison_parser.y" { (yyval.bval) = true; } -#line 3779 "bison_parser.cpp" +#line 3544 "bison_parser.cpp" break; - case 70: -#line 602 "bison_parser.y" + case 77: +#line 629 "bison_parser.y" { (yyval.bval) = false; } -#line 3785 "bison_parser.cpp" +#line 3550 "bison_parser.cpp" break; - case 71: -#line 611 "bison_parser.y" + case 78: +#line 638 "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 3796 "bison_parser.cpp" +#line 3561 "bison_parser.cpp" break; - case 72: -#line 620 "bison_parser.y" + case 79: +#line 647 "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 3806 "bison_parser.cpp" +#line 3571 "bison_parser.cpp" break; - case 73: -#line 633 "bison_parser.y" - { + case 80: +#line 660 "bison_parser.y" + { (yyval.insert_stmt) = new InsertStatement(kInsertValues); - (yyval.insert_stmt)->schema = (yyvsp[-5].table_name).schema; - (yyval.insert_stmt)->tableName = (yyvsp[-5].table_name).name; - (yyval.insert_stmt)->columns = (yyvsp[-4].str_vec); - (yyval.insert_stmt)->values = (yyvsp[-1].expr_vec); + (yyval.insert_stmt)->schema = (yyvsp[-3].table_name).schema; + (yyval.insert_stmt)->tableName = (yyvsp[-3].table_name).name; + (yyval.insert_stmt)->columns = (yyvsp[-2].str_vec); + (yyval.insert_stmt)->values = (yyvsp[0].expr_vec_vec); } -#line 3818 "bison_parser.cpp" +#line 3583 "bison_parser.cpp" break; - case 74: -#line 640 "bison_parser.y" + case 81: +#line 667 "bison_parser.y" { (yyval.insert_stmt) = new InsertStatement(kInsertSelect); (yyval.insert_stmt)->schema = (yyvsp[-2].table_name).schema; @@ -3826,74 +3591,92 @@ yyreduce: (yyval.insert_stmt)->columns = (yyvsp[-1].str_vec); (yyval.insert_stmt)->select = (yyvsp[0].select_stmt); } -#line 3830 "bison_parser.cpp" +#line 3595 "bison_parser.cpp" break; - case 75: -#line 651 "bison_parser.y" + case 82: +#line 678 "bison_parser.y" { (yyval.str_vec) = (yyvsp[-1].str_vec); } -#line 3836 "bison_parser.cpp" +#line 3601 "bison_parser.cpp" break; - case 76: -#line 652 "bison_parser.y" + case 83: +#line 679 "bison_parser.y" { (yyval.str_vec) = nullptr; } -#line 3842 "bison_parser.cpp" +#line 3607 "bison_parser.cpp" break; - case 77: -#line 662 "bison_parser.y" + case 84: +#line 683 "bison_parser.y" + { (yyval.expr_vec) = (yyvsp[-1].expr_vec); } +#line 3613 "bison_parser.cpp" + break; + + case 85: +#line 687 "bison_parser.y" + { (yyval.expr_vec_vec) = new std::vector*> (); (yyval.expr_vec_vec)->push_back((yyvsp[0].expr_vec)); } +#line 3619 "bison_parser.cpp" + break; + + case 86: +#line 688 "bison_parser.y" + { (yyval.expr_vec_vec) = (yyvsp[0].expr_vec_vec); (yyval.expr_vec_vec)->push_back((yyvsp[-2].expr_vec)); } +#line 3625 "bison_parser.cpp" + break; + + case 87: +#line 698 "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 3853 "bison_parser.cpp" +#line 3636 "bison_parser.cpp" break; - case 78: -#line 671 "bison_parser.y" + case 88: +#line 707 "bison_parser.y" { (yyval.update_vec) = new std::vector(); (yyval.update_vec)->push_back((yyvsp[0].update_t)); } -#line 3859 "bison_parser.cpp" +#line 3642 "bison_parser.cpp" break; - case 79: -#line 672 "bison_parser.y" + case 89: +#line 708 "bison_parser.y" { (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); (yyval.update_vec) = (yyvsp[-2].update_vec); } -#line 3865 "bison_parser.cpp" +#line 3648 "bison_parser.cpp" break; - case 80: -#line 676 "bison_parser.y" + case 90: +#line 712 "bison_parser.y" { (yyval.update_t) = new UpdateClause(); (yyval.update_t)->column = (yyvsp[-2].sval); (yyval.update_t)->value = (yyvsp[0].expr); } -#line 3875 "bison_parser.cpp" +#line 3658 "bison_parser.cpp" break; - case 81: -#line 688 "bison_parser.y" + case 91: +#line 724 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[0].select_stmt); (yyval.select_stmt)->withDescriptions = (yyvsp[-1].with_description_vec); } -#line 3884 "bison_parser.cpp" +#line 3667 "bison_parser.cpp" break; - case 82: -#line 692 "bison_parser.y" + case 92: +#line 728 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[0].select_stmt); (yyval.select_stmt)->withDescriptions = (yyvsp[-1].with_description_vec); } -#line 3893 "bison_parser.cpp" +#line 3676 "bison_parser.cpp" break; - case 83: -#line 696 "bison_parser.y" + case 93: +#line 732 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[-4].select_stmt); if ((yyval.select_stmt)->setOperations == nullptr) { @@ -3905,17 +3688,17 @@ yyreduce: (yyval.select_stmt)->setOperations->back()->resultLimit = (yyvsp[0].limit); (yyval.select_stmt)->withDescriptions = (yyvsp[-5].with_description_vec); } -#line 3909 "bison_parser.cpp" +#line 3692 "bison_parser.cpp" break; - case 86: -#line 714 "bison_parser.y" + case 96: +#line 750 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[0].select_stmt); } -#line 3915 "bison_parser.cpp" +#line 3698 "bison_parser.cpp" break; - case 87: -#line 715 "bison_parser.y" + case 97: +#line 751 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[-2].select_stmt); if ((yyval.select_stmt)->setOperations == nullptr) { @@ -3924,23 +3707,23 @@ yyreduce: (yyval.select_stmt)->setOperations->push_back((yyvsp[-1].set_operator_t)); (yyval.select_stmt)->setOperations->back()->nestedSelectStatement = (yyvsp[0].select_stmt); } -#line 3928 "bison_parser.cpp" +#line 3711 "bison_parser.cpp" break; - case 88: -#line 726 "bison_parser.y" + case 98: +#line 762 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 3934 "bison_parser.cpp" +#line 3717 "bison_parser.cpp" break; - case 89: -#line 727 "bison_parser.y" + case 99: +#line 763 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 3940 "bison_parser.cpp" +#line 3723 "bison_parser.cpp" break; - case 90: -#line 731 "bison_parser.y" + case 100: +#line 767 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[-2].select_stmt); (yyval.select_stmt)->order = (yyvsp[-1].order_vec); @@ -3951,11 +3734,11 @@ yyreduce: (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 3955 "bison_parser.cpp" +#line 3738 "bison_parser.cpp" break; - case 91: -#line 741 "bison_parser.y" + case 101: +#line 777 "bison_parser.y" { (yyval.select_stmt) = (yyvsp[-4].select_stmt); if ((yyval.select_stmt)->setOperations == nullptr) { @@ -3966,63 +3749,63 @@ yyreduce: (yyval.select_stmt)->setOperations->back()->resultOrder = (yyvsp[-1].order_vec); (yyval.select_stmt)->setOperations->back()->resultLimit = (yyvsp[0].limit); } -#line 3970 "bison_parser.cpp" +#line 3753 "bison_parser.cpp" break; - case 92: -#line 754 "bison_parser.y" + case 102: +#line 790 "bison_parser.y" { (yyval.set_operator_t) = (yyvsp[-1].set_operator_t); (yyval.set_operator_t)->isAll = (yyvsp[0].bval); } -#line 3979 "bison_parser.cpp" +#line 3762 "bison_parser.cpp" break; - case 93: -#line 761 "bison_parser.y" + case 103: +#line 797 "bison_parser.y" { (yyval.set_operator_t) = new SetOperation(); (yyval.set_operator_t)->setType = SetType::kSetUnion; } -#line 3988 "bison_parser.cpp" +#line 3771 "bison_parser.cpp" break; - case 94: -#line 765 "bison_parser.y" + case 104: +#line 801 "bison_parser.y" { (yyval.set_operator_t) = new SetOperation(); (yyval.set_operator_t)->setType = SetType::kSetIntersect; } -#line 3997 "bison_parser.cpp" +#line 3780 "bison_parser.cpp" break; - case 95: -#line 769 "bison_parser.y" + case 105: +#line 805 "bison_parser.y" { (yyval.set_operator_t) = new SetOperation(); (yyval.set_operator_t)->setType = SetType::kSetExcept; } -#line 4006 "bison_parser.cpp" +#line 3789 "bison_parser.cpp" break; - case 96: -#line 776 "bison_parser.y" + case 106: +#line 812 "bison_parser.y" { (yyval.bval) = true; } -#line 4014 "bison_parser.cpp" +#line 3797 "bison_parser.cpp" break; - case 97: -#line 779 "bison_parser.y" + case 107: +#line 815 "bison_parser.y" { (yyval.bval) = false; } -#line 4022 "bison_parser.cpp" +#line 3805 "bison_parser.cpp" break; - case 98: -#line 785 "bison_parser.y" + case 108: +#line 821 "bison_parser.y" { (yyval.select_stmt) = new SelectStatement(); (yyval.select_stmt)->limit = (yyvsp[-5].limit); @@ -4032,213 +3815,213 @@ yyreduce: (yyval.select_stmt)->whereClause = (yyvsp[-1].expr); (yyval.select_stmt)->groupBy = (yyvsp[0].group_t); } -#line 4036 "bison_parser.cpp" +#line 3819 "bison_parser.cpp" break; - case 99: -#line 797 "bison_parser.y" + case 109: +#line 833 "bison_parser.y" { (yyval.bval) = true; } -#line 4042 "bison_parser.cpp" +#line 3825 "bison_parser.cpp" break; - case 100: -#line 798 "bison_parser.y" + case 110: +#line 834 "bison_parser.y" { (yyval.bval) = false; } -#line 4048 "bison_parser.cpp" +#line 3831 "bison_parser.cpp" break; - case 102: -#line 806 "bison_parser.y" + case 112: +#line 842 "bison_parser.y" { (yyval.table) = (yyvsp[0].table); } -#line 4054 "bison_parser.cpp" +#line 3837 "bison_parser.cpp" break; - case 103: -#line 807 "bison_parser.y" + case 113: +#line 843 "bison_parser.y" { (yyval.table) = nullptr; } -#line 4060 "bison_parser.cpp" +#line 3843 "bison_parser.cpp" break; - case 104: -#line 811 "bison_parser.y" + case 114: +#line 847 "bison_parser.y" { (yyval.table) = (yyvsp[0].table); } -#line 4066 "bison_parser.cpp" +#line 3849 "bison_parser.cpp" break; - case 105: -#line 816 "bison_parser.y" + case 115: +#line 852 "bison_parser.y" { (yyval.expr) = (yyvsp[0].expr); } -#line 4072 "bison_parser.cpp" +#line 3855 "bison_parser.cpp" break; - case 106: -#line 817 "bison_parser.y" + case 116: +#line 853 "bison_parser.y" { (yyval.expr) = nullptr; } -#line 4078 "bison_parser.cpp" +#line 3861 "bison_parser.cpp" break; - case 107: -#line 821 "bison_parser.y" + case 117: +#line 857 "bison_parser.y" { (yyval.group_t) = new GroupByDescription(); (yyval.group_t)->columns = (yyvsp[-1].expr_vec); (yyval.group_t)->having = (yyvsp[0].expr); } -#line 4088 "bison_parser.cpp" - break; - - case 108: -#line 826 "bison_parser.y" - { (yyval.group_t) = nullptr; } -#line 4094 "bison_parser.cpp" - break; - - case 109: -#line 830 "bison_parser.y" - { (yyval.expr) = (yyvsp[0].expr); } -#line 4100 "bison_parser.cpp" - break; - - case 110: -#line 831 "bison_parser.y" - { (yyval.expr) = nullptr; } -#line 4106 "bison_parser.cpp" - break; - - case 111: -#line 835 "bison_parser.y" - { (yyval.order_vec) = (yyvsp[0].order_vec); } -#line 4112 "bison_parser.cpp" - break; - - case 112: -#line 836 "bison_parser.y" - { (yyval.order_vec) = nullptr; } -#line 4118 "bison_parser.cpp" - break; - - case 113: -#line 840 "bison_parser.y" - { (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); } -#line 4124 "bison_parser.cpp" - break; - - case 114: -#line 841 "bison_parser.y" - { (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); } -#line 4130 "bison_parser.cpp" - break; - - case 115: -#line 845 "bison_parser.y" - { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } -#line 4136 "bison_parser.cpp" - break; - - case 116: -#line 849 "bison_parser.y" - { (yyval.order_type) = kOrderAsc; } -#line 4142 "bison_parser.cpp" - break; - - case 117: -#line 850 "bison_parser.y" - { (yyval.order_type) = kOrderDesc; } -#line 4148 "bison_parser.cpp" +#line 3871 "bison_parser.cpp" break; case 118: -#line 851 "bison_parser.y" - { (yyval.order_type) = kOrderAsc; } -#line 4154 "bison_parser.cpp" +#line 862 "bison_parser.y" + { (yyval.group_t) = nullptr; } +#line 3877 "bison_parser.cpp" break; case 119: -#line 857 "bison_parser.y" - { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } -#line 4160 "bison_parser.cpp" +#line 866 "bison_parser.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 3883 "bison_parser.cpp" break; case 120: -#line 858 "bison_parser.y" - { (yyval.limit) = nullptr; } -#line 4166 "bison_parser.cpp" +#line 867 "bison_parser.y" + { (yyval.expr) = nullptr; } +#line 3889 "bison_parser.cpp" break; case 121: -#line 862 "bison_parser.y" - { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } -#line 4172 "bison_parser.cpp" +#line 871 "bison_parser.y" + { (yyval.order_vec) = (yyvsp[0].order_vec); } +#line 3895 "bison_parser.cpp" break; case 122: -#line 863 "bison_parser.y" - { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } -#line 4178 "bison_parser.cpp" +#line 872 "bison_parser.y" + { (yyval.order_vec) = nullptr; } +#line 3901 "bison_parser.cpp" break; case 123: -#line 864 "bison_parser.y" - { (yyval.limit) = new LimitDescription((yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4184 "bison_parser.cpp" +#line 876 "bison_parser.y" + { (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); } +#line 3907 "bison_parser.cpp" break; case 124: -#line 865 "bison_parser.y" - { (yyval.limit) = new LimitDescription(nullptr, nullptr); } -#line 4190 "bison_parser.cpp" +#line 877 "bison_parser.y" + { (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); } +#line 3913 "bison_parser.cpp" break; case 125: -#line 866 "bison_parser.y" - { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } -#line 4196 "bison_parser.cpp" +#line 881 "bison_parser.y" + { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } +#line 3919 "bison_parser.cpp" break; case 126: -#line 867 "bison_parser.y" - { (yyval.limit) = nullptr; } -#line 4202 "bison_parser.cpp" +#line 885 "bison_parser.y" + { (yyval.order_type) = kOrderAsc; } +#line 3925 "bison_parser.cpp" break; case 127: -#line 874 "bison_parser.y" - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 4208 "bison_parser.cpp" +#line 886 "bison_parser.y" + { (yyval.order_type) = kOrderDesc; } +#line 3931 "bison_parser.cpp" break; case 128: -#line 875 "bison_parser.y" - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 4214 "bison_parser.cpp" +#line 887 "bison_parser.y" + { (yyval.order_type) = kOrderAsc; } +#line 3937 "bison_parser.cpp" break; case 129: -#line 879 "bison_parser.y" - { (yyval.expr_vec) = (yyvsp[0].expr_vec); } -#line 4220 "bison_parser.cpp" +#line 893 "bison_parser.y" + { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } +#line 3943 "bison_parser.cpp" break; case 130: -#line 880 "bison_parser.y" - { (yyval.expr_vec) = nullptr; } -#line 4226 "bison_parser.cpp" +#line 894 "bison_parser.y" + { (yyval.limit) = nullptr; } +#line 3949 "bison_parser.cpp" break; case 131: -#line 884 "bison_parser.y" - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 4232 "bison_parser.cpp" +#line 898 "bison_parser.y" + { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } +#line 3955 "bison_parser.cpp" break; case 132: -#line 885 "bison_parser.y" - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 4238 "bison_parser.cpp" +#line 899 "bison_parser.y" + { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } +#line 3961 "bison_parser.cpp" break; case 133: -#line 889 "bison_parser.y" +#line 900 "bison_parser.y" + { (yyval.limit) = new LimitDescription((yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3967 "bison_parser.cpp" + break; + + case 134: +#line 901 "bison_parser.y" + { (yyval.limit) = new LimitDescription(nullptr, nullptr); } +#line 3973 "bison_parser.cpp" + break; + + case 135: +#line 902 "bison_parser.y" + { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } +#line 3979 "bison_parser.cpp" + break; + + case 136: +#line 903 "bison_parser.y" + { (yyval.limit) = nullptr; } +#line 3985 "bison_parser.cpp" + break; + + case 137: +#line 910 "bison_parser.y" + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 3991 "bison_parser.cpp" + break; + + case 138: +#line 911 "bison_parser.y" + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 3997 "bison_parser.cpp" + break; + + case 139: +#line 915 "bison_parser.y" + { (yyval.expr_vec) = (yyvsp[0].expr_vec); } +#line 4003 "bison_parser.cpp" + break; + + case 140: +#line 916 "bison_parser.y" + { (yyval.expr_vec) = nullptr; } +#line 4009 "bison_parser.cpp" + break; + + case 141: +#line 920 "bison_parser.y" + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 4015 "bison_parser.cpp" + break; + + case 142: +#line 921 "bison_parser.y" + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 4021 "bison_parser.cpp" + break; + + case 143: +#line 925 "bison_parser.y" { (yyval.expr) = (yyvsp[-1].expr); if ((yyvsp[0].alias_t)) { @@ -4246,421 +4029,421 @@ yyreduce: delete (yyvsp[0].alias_t); } } -#line 4250 "bison_parser.cpp" - break; - - case 139: -#line 907 "bison_parser.y" - { (yyval.expr) = (yyvsp[-1].expr); } -#line 4256 "bison_parser.cpp" +#line 4033 "bison_parser.cpp" break; case 149: -#line 917 "bison_parser.y" - { (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); } -#line 4262 "bison_parser.cpp" - break; - - case 152: -#line 926 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); } -#line 4268 "bison_parser.cpp" - break; - - case 153: -#line 927 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } -#line 4274 "bison_parser.cpp" - break; - - case 154: -#line 928 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); } -#line 4280 "bison_parser.cpp" - break; - - case 155: -#line 929 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); } -#line 4286 "bison_parser.cpp" - break; - - case 156: -#line 930 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); } -#line 4292 "bison_parser.cpp" - break; - - case 158: -#line 935 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); } -#line 4298 "bison_parser.cpp" +#line 943 "bison_parser.y" + { (yyval.expr) = (yyvsp[-1].expr); } +#line 4039 "bison_parser.cpp" break; case 159: -#line 936 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); } -#line 4304 "bison_parser.cpp" - break; - - case 160: -#line 937 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); } -#line 4310 "bison_parser.cpp" - break; - - case 161: -#line 938 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); } -#line 4316 "bison_parser.cpp" +#line 953 "bison_parser.y" + { (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); } +#line 4045 "bison_parser.cpp" break; case 162: -#line 939 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); } -#line 4322 "bison_parser.cpp" +#line 962 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); } +#line 4051 "bison_parser.cpp" break; case 163: -#line 940 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); } -#line 4328 "bison_parser.cpp" +#line 963 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } +#line 4057 "bison_parser.cpp" break; case 164: -#line 941 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } -#line 4334 "bison_parser.cpp" +#line 964 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); } +#line 4063 "bison_parser.cpp" break; case 165: -#line 942 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } -#line 4340 "bison_parser.cpp" +#line 965 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); } +#line 4069 "bison_parser.cpp" break; case 166: -#line 943 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); } -#line 4346 "bison_parser.cpp" - break; - - case 167: -#line 944 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); } -#line 4352 "bison_parser.cpp" +#line 966 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); } +#line 4075 "bison_parser.cpp" break; case 168: -#line 948 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } -#line 4358 "bison_parser.cpp" +#line 971 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); } +#line 4081 "bison_parser.cpp" break; case 169: -#line 949 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } -#line 4364 "bison_parser.cpp" +#line 972 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); } +#line 4087 "bison_parser.cpp" break; case 170: -#line 953 "bison_parser.y" - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } -#line 4370 "bison_parser.cpp" +#line 973 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); } +#line 4093 "bison_parser.cpp" break; case 171: -#line 954 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } -#line 4376 "bison_parser.cpp" +#line 974 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); } +#line 4099 "bison_parser.cpp" break; case 172: -#line 955 "bison_parser.y" - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } -#line 4382 "bison_parser.cpp" +#line 975 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); } +#line 4105 "bison_parser.cpp" break; case 173: -#line 956 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } -#line 4388 "bison_parser.cpp" +#line 976 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); } +#line 4111 "bison_parser.cpp" break; case 174: -#line 962 "bison_parser.y" - { (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); } -#line 4394 "bison_parser.cpp" +#line 977 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } +#line 4117 "bison_parser.cpp" break; case 175: -#line 963 "bison_parser.y" - { (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 4400 "bison_parser.cpp" +#line 978 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } +#line 4123 "bison_parser.cpp" break; case 176: -#line 964 "bison_parser.y" - { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); } -#line 4406 "bison_parser.cpp" +#line 979 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); } +#line 4129 "bison_parser.cpp" break; case 177: -#line 965 "bison_parser.y" - { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 4412 "bison_parser.cpp" +#line 980 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); } +#line 4135 "bison_parser.cpp" break; case 178: -#line 969 "bison_parser.y" - { (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } -#line 4418 "bison_parser.cpp" +#line 984 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } +#line 4141 "bison_parser.cpp" break; case 179: -#line 970 "bison_parser.y" - { (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } -#line 4424 "bison_parser.cpp" +#line 985 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } +#line 4147 "bison_parser.cpp" break; case 180: -#line 974 "bison_parser.y" - { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } -#line 4430 "bison_parser.cpp" +#line 989 "bison_parser.y" + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } +#line 4153 "bison_parser.cpp" break; case 181: -#line 975 "bison_parser.y" - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } -#line 4436 "bison_parser.cpp" +#line 990 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } +#line 4159 "bison_parser.cpp" break; case 182: -#line 979 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } -#line 4442 "bison_parser.cpp" +#line 991 "bison_parser.y" + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } +#line 4165 "bison_parser.cpp" break; case 183: -#line 980 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } -#line 4448 "bison_parser.cpp" +#line 992 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } +#line 4171 "bison_parser.cpp" break; case 184: -#line 981 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } -#line 4454 "bison_parser.cpp" +#line 998 "bison_parser.y" + { (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); } +#line 4177 "bison_parser.cpp" break; case 185: -#line 982 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); } -#line 4460 "bison_parser.cpp" +#line 999 "bison_parser.y" + { (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 4183 "bison_parser.cpp" break; case 186: -#line 983 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); } -#line 4466 "bison_parser.cpp" +#line 1000 "bison_parser.y" + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); } +#line 4189 "bison_parser.cpp" break; case 187: -#line 984 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } -#line 4472 "bison_parser.cpp" +#line 1001 "bison_parser.y" + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 4195 "bison_parser.cpp" break; case 188: -#line 985 "bison_parser.y" - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } -#line 4478 "bison_parser.cpp" +#line 1005 "bison_parser.y" + { (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 4201 "bison_parser.cpp" break; case 189: -#line 989 "bison_parser.y" - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-2].sval), new std::vector(), false); } -#line 4484 "bison_parser.cpp" +#line 1006 "bison_parser.y" + { (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 4207 "bison_parser.cpp" break; case 190: -#line 990 "bison_parser.y" - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } -#line 4490 "bison_parser.cpp" +#line 1010 "bison_parser.y" + { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } +#line 4213 "bison_parser.cpp" break; case 191: -#line 994 "bison_parser.y" - { (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); } -#line 4496 "bison_parser.cpp" +#line 1011 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } +#line 4219 "bison_parser.cpp" break; case 192: -#line 998 "bison_parser.y" - { (yyval.expr) = Expr::makeCast((yyvsp[-3].expr), (yyvsp[-1].column_type_t)); } -#line 4502 "bison_parser.cpp" +#line 1015 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 4225 "bison_parser.cpp" break; case 193: -#line 1002 "bison_parser.y" - { (yyval.datetime_field) = kDatetimeSecond; } -#line 4508 "bison_parser.cpp" +#line 1016 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 4231 "bison_parser.cpp" break; case 194: -#line 1003 "bison_parser.y" - { (yyval.datetime_field) = kDatetimeMinute; } -#line 4514 "bison_parser.cpp" +#line 1017 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } +#line 4237 "bison_parser.cpp" break; case 195: -#line 1004 "bison_parser.y" - { (yyval.datetime_field) = kDatetimeHour; } -#line 4520 "bison_parser.cpp" +#line 1018 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); } +#line 4243 "bison_parser.cpp" break; case 196: -#line 1005 "bison_parser.y" - { (yyval.datetime_field) = kDatetimeDay; } -#line 4526 "bison_parser.cpp" +#line 1019 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); } +#line 4249 "bison_parser.cpp" break; case 197: -#line 1006 "bison_parser.y" - { (yyval.datetime_field) = kDatetimeMonth; } -#line 4532 "bison_parser.cpp" +#line 1020 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } +#line 4255 "bison_parser.cpp" break; case 198: -#line 1007 "bison_parser.y" - { (yyval.datetime_field) = kDatetimeYear; } -#line 4538 "bison_parser.cpp" +#line 1021 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } +#line 4261 "bison_parser.cpp" break; case 199: -#line 1011 "bison_parser.y" - { (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); } -#line 4544 "bison_parser.cpp" +#line 1025 "bison_parser.y" + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-2].sval), new std::vector(), false); } +#line 4267 "bison_parser.cpp" break; case 200: -#line 1015 "bison_parser.y" - { (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); } -#line 4550 "bison_parser.cpp" +#line 1026 "bison_parser.y" + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } +#line 4273 "bison_parser.cpp" break; case 201: -#line 1019 "bison_parser.y" - { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4556 "bison_parser.cpp" +#line 1030 "bison_parser.y" + { (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); } +#line 4279 "bison_parser.cpp" break; case 202: -#line 1023 "bison_parser.y" - { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } -#line 4562 "bison_parser.cpp" +#line 1034 "bison_parser.y" + { (yyval.expr) = Expr::makeCast((yyvsp[-3].expr), (yyvsp[-1].column_type_t)); } +#line 4285 "bison_parser.cpp" break; case 203: -#line 1024 "bison_parser.y" - { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } -#line 4568 "bison_parser.cpp" +#line 1038 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeSecond; } +#line 4291 "bison_parser.cpp" break; case 204: -#line 1025 "bison_parser.y" - { (yyval.expr) = Expr::makeStar(); } -#line 4574 "bison_parser.cpp" +#line 1039 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeMinute; } +#line 4297 "bison_parser.cpp" break; case 205: -#line 1026 "bison_parser.y" - { (yyval.expr) = Expr::makeStar((yyvsp[-2].sval)); } -#line 4580 "bison_parser.cpp" +#line 1040 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeHour; } +#line 4303 "bison_parser.cpp" + break; + + case 206: +#line 1041 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeDay; } +#line 4309 "bison_parser.cpp" + break; + + case 207: +#line 1042 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeMonth; } +#line 4315 "bison_parser.cpp" + break; + + case 208: +#line 1043 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeYear; } +#line 4321 "bison_parser.cpp" + break; + + case 209: +#line 1047 "bison_parser.y" + { (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); } +#line 4327 "bison_parser.cpp" + break; + + case 210: +#line 1051 "bison_parser.y" + { (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); } +#line 4333 "bison_parser.cpp" break; case 211: -#line 1038 "bison_parser.y" - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } -#line 4586 "bison_parser.cpp" +#line 1055 "bison_parser.y" + { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4339 "bison_parser.cpp" break; case 212: -#line 1042 "bison_parser.y" - { (yyval.expr) = Expr::makeLiteral(true); } -#line 4592 "bison_parser.cpp" +#line 1059 "bison_parser.y" + { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } +#line 4345 "bison_parser.cpp" break; case 213: -#line 1043 "bison_parser.y" - { (yyval.expr) = Expr::makeLiteral(false); } -#line 4598 "bison_parser.cpp" +#line 1060 "bison_parser.y" + { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } +#line 4351 "bison_parser.cpp" break; case 214: -#line 1047 "bison_parser.y" +#line 1061 "bison_parser.y" + { (yyval.expr) = Expr::makeStar(); } +#line 4357 "bison_parser.cpp" + break; + + case 215: +#line 1062 "bison_parser.y" + { (yyval.expr) = Expr::makeStar((yyvsp[-2].sval)); } +#line 4363 "bison_parser.cpp" + break; + + case 221: +#line 1074 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } +#line 4369 "bison_parser.cpp" + break; + + case 222: +#line 1078 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral(true); } +#line 4375 "bison_parser.cpp" + break; + + case 223: +#line 1079 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral(false); } +#line 4381 "bison_parser.cpp" + break; + + case 224: +#line 1083 "bison_parser.y" { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } -#line 4604 "bison_parser.cpp" +#line 4387 "bison_parser.cpp" break; - case 216: -#line 1052 "bison_parser.y" + case 226: +#line 1088 "bison_parser.y" { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } -#line 4610 "bison_parser.cpp" +#line 4393 "bison_parser.cpp" break; - case 217: -#line 1056 "bison_parser.y" + case 227: +#line 1092 "bison_parser.y" { (yyval.expr) = Expr::makeNullLiteral(); } -#line 4616 "bison_parser.cpp" +#line 4399 "bison_parser.cpp" break; - case 218: -#line 1060 "bison_parser.y" + case 228: +#line 1096 "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 4626 "bison_parser.cpp" +#line 4409 "bison_parser.cpp" break; - case 220: -#line 1073 "bison_parser.y" + case 230: +#line 1109 "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 4637 "bison_parser.cpp" +#line 4420 "bison_parser.cpp" break; - case 224: -#line 1089 "bison_parser.y" + case 234: +#line 1125 "bison_parser.y" { auto tbl = new TableRef(kTableSelect); tbl->select = (yyvsp[-2].select_stmt); tbl->alias = (yyvsp[0].alias_t); (yyval.table) = tbl; } -#line 4648 "bison_parser.cpp" +#line 4431 "bison_parser.cpp" break; - case 225: -#line 1098 "bison_parser.y" + case 235: +#line 1134 "bison_parser.y" { (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); } -#line 4654 "bison_parser.cpp" +#line 4437 "bison_parser.cpp" break; - case 226: -#line 1099 "bison_parser.y" + case 236: +#line 1135 "bison_parser.y" { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); } -#line 4660 "bison_parser.cpp" +#line 4443 "bison_parser.cpp" break; - case 227: -#line 1104 "bison_parser.y" + case 237: +#line 1140 "bison_parser.y" { auto tbl = new TableRef(kTableName); tbl->schema = (yyvsp[-1].table_name).schema; @@ -4668,103 +4451,103 @@ yyreduce: tbl->alias = (yyvsp[0].alias_t); (yyval.table) = tbl; } -#line 4672 "bison_parser.cpp" +#line 4455 "bison_parser.cpp" break; - case 228: -#line 1115 "bison_parser.y" + case 238: +#line 1151 "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 4682 "bison_parser.cpp" +#line 4465 "bison_parser.cpp" break; - case 229: -#line 1124 "bison_parser.y" + case 239: +#line 1160 "bison_parser.y" { (yyval.table_name).schema = nullptr; (yyval.table_name).name = (yyvsp[0].sval);} -#line 4688 "bison_parser.cpp" - break; - - case 230: -#line 1125 "bison_parser.y" - { (yyval.table_name).schema = (yyvsp[-2].sval); (yyval.table_name).name = (yyvsp[0].sval); } -#line 4694 "bison_parser.cpp" - break; - - case 232: -#line 1131 "bison_parser.y" - { (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); } -#line 4700 "bison_parser.cpp" - break; - - case 234: -#line 1137 "bison_parser.y" - { (yyval.alias_t) = nullptr; } -#line 4706 "bison_parser.cpp" - break; - - case 235: -#line 1142 "bison_parser.y" - { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } -#line 4712 "bison_parser.cpp" - break; - - case 236: -#line 1143 "bison_parser.y" - { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } -#line 4718 "bison_parser.cpp" - break; - - case 238: -#line 1149 "bison_parser.y" - { (yyval.alias_t) = nullptr; } -#line 4724 "bison_parser.cpp" +#line 4471 "bison_parser.cpp" break; case 240: -#line 1159 "bison_parser.y" - { (yyval.with_description_vec) = nullptr; } -#line 4730 "bison_parser.cpp" - break; - - case 241: -#line 1163 "bison_parser.y" - { (yyval.with_description_vec) = (yyvsp[0].with_description_vec); } -#line 4736 "bison_parser.cpp" +#line 1161 "bison_parser.y" + { (yyval.table_name).schema = (yyvsp[-2].sval); (yyval.table_name).name = (yyvsp[0].sval); } +#line 4477 "bison_parser.cpp" break; case 242: #line 1167 "bison_parser.y" + { (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); } +#line 4483 "bison_parser.cpp" + break; + + case 244: +#line 1173 "bison_parser.y" + { (yyval.alias_t) = nullptr; } +#line 4489 "bison_parser.cpp" + break; + + case 245: +#line 1178 "bison_parser.y" + { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } +#line 4495 "bison_parser.cpp" + break; + + case 246: +#line 1179 "bison_parser.y" + { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } +#line 4501 "bison_parser.cpp" + break; + + case 248: +#line 1185 "bison_parser.y" + { (yyval.alias_t) = nullptr; } +#line 4507 "bison_parser.cpp" + break; + + case 250: +#line 1195 "bison_parser.y" + { (yyval.with_description_vec) = nullptr; } +#line 4513 "bison_parser.cpp" + break; + + case 251: +#line 1199 "bison_parser.y" + { (yyval.with_description_vec) = (yyvsp[0].with_description_vec); } +#line 4519 "bison_parser.cpp" + break; + + case 252: +#line 1203 "bison_parser.y" { (yyval.with_description_vec) = new std::vector(); (yyval.with_description_vec)->push_back((yyvsp[0].with_description_t)); } -#line 4745 "bison_parser.cpp" +#line 4528 "bison_parser.cpp" break; - case 243: -#line 1171 "bison_parser.y" + case 253: +#line 1207 "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 4754 "bison_parser.cpp" +#line 4537 "bison_parser.cpp" break; - case 244: -#line 1178 "bison_parser.y" + case 254: +#line 1214 "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 4764 "bison_parser.cpp" +#line 4547 "bison_parser.cpp" break; - case 245: -#line 1192 "bison_parser.y" + case 255: +#line 1228 "bison_parser.y" { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -4772,11 +4555,11 @@ yyreduce: (yyval.table)->join->left = (yyvsp[-3].table); (yyval.table)->join->right = (yyvsp[0].table); } -#line 4776 "bison_parser.cpp" +#line 4559 "bison_parser.cpp" break; - case 246: -#line 1200 "bison_parser.y" + case 256: +#line 1236 "bison_parser.y" { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -4785,11 +4568,11 @@ yyreduce: (yyval.table)->join->right = (yyvsp[-2].table); (yyval.table)->join->condition = (yyvsp[0].expr); } -#line 4789 "bison_parser.cpp" +#line 4572 "bison_parser.cpp" break; - case 247: -#line 1210 "bison_parser.y" + case 257: +#line 1246 "bison_parser.y" { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -4805,83 +4588,83 @@ yyreduce: (yyval.table)->join->condition = Expr::makeOpBinary(left_col, kOpEquals, right_col); delete (yyvsp[-1].expr); } -#line 4809 "bison_parser.cpp" +#line 4592 "bison_parser.cpp" break; - case 248: -#line 1228 "bison_parser.y" + case 258: +#line 1264 "bison_parser.y" { (yyval.uval) = kJoinInner; } -#line 4815 "bison_parser.cpp" +#line 4598 "bison_parser.cpp" break; - case 249: -#line 1229 "bison_parser.y" + case 259: +#line 1265 "bison_parser.y" { (yyval.uval) = kJoinLeft; } -#line 4821 "bison_parser.cpp" +#line 4604 "bison_parser.cpp" break; - case 250: -#line 1230 "bison_parser.y" + case 260: +#line 1266 "bison_parser.y" { (yyval.uval) = kJoinLeft; } -#line 4827 "bison_parser.cpp" - break; - - case 251: -#line 1231 "bison_parser.y" - { (yyval.uval) = kJoinRight; } -#line 4833 "bison_parser.cpp" - break; - - case 252: -#line 1232 "bison_parser.y" - { (yyval.uval) = kJoinRight; } -#line 4839 "bison_parser.cpp" - break; - - case 253: -#line 1233 "bison_parser.y" - { (yyval.uval) = kJoinFull; } -#line 4845 "bison_parser.cpp" - break; - - case 254: -#line 1234 "bison_parser.y" - { (yyval.uval) = kJoinFull; } -#line 4851 "bison_parser.cpp" - break; - - case 255: -#line 1235 "bison_parser.y" - { (yyval.uval) = kJoinFull; } -#line 4857 "bison_parser.cpp" - break; - - case 256: -#line 1236 "bison_parser.y" - { (yyval.uval) = kJoinCross; } -#line 4863 "bison_parser.cpp" - break; - - case 257: -#line 1237 "bison_parser.y" - { (yyval.uval) = kJoinInner; } -#line 4869 "bison_parser.cpp" +#line 4610 "bison_parser.cpp" break; case 261: -#line 1257 "bison_parser.y" - { (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); } -#line 4875 "bison_parser.cpp" +#line 1267 "bison_parser.y" + { (yyval.uval) = kJoinRight; } +#line 4616 "bison_parser.cpp" break; case 262: -#line 1258 "bison_parser.y" +#line 1268 "bison_parser.y" + { (yyval.uval) = kJoinRight; } +#line 4622 "bison_parser.cpp" + break; + + case 263: +#line 1269 "bison_parser.y" + { (yyval.uval) = kJoinFull; } +#line 4628 "bison_parser.cpp" + break; + + case 264: +#line 1270 "bison_parser.y" + { (yyval.uval) = kJoinFull; } +#line 4634 "bison_parser.cpp" + break; + + case 265: +#line 1271 "bison_parser.y" + { (yyval.uval) = kJoinFull; } +#line 4640 "bison_parser.cpp" + break; + + case 266: +#line 1272 "bison_parser.y" + { (yyval.uval) = kJoinCross; } +#line 4646 "bison_parser.cpp" + break; + + case 267: +#line 1273 "bison_parser.y" + { (yyval.uval) = kJoinInner; } +#line 4652 "bison_parser.cpp" + break; + + case 271: +#line 1293 "bison_parser.y" + { (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); } +#line 4658 "bison_parser.cpp" + break; + + case 272: +#line 1294 "bison_parser.y" { (yyvsp[-2].str_vec)->push_back((yyvsp[0].sval)); (yyval.str_vec) = (yyvsp[-2].str_vec); } -#line 4881 "bison_parser.cpp" +#line 4664 "bison_parser.cpp" break; -#line 4885 "bison_parser.cpp" +#line 4668 "bison_parser.cpp" default: break; } @@ -4896,10 +4679,11 @@ yyreduce: case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; @@ -4924,61 +4708,66 @@ yyreduce: yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == SQL_HSQL_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (&yylloc, result, scanner, YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) { - yypcontext_t yyctx - = {yyssp, yytoken, &yylloc}; char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; - yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); + yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; - else if (yysyntax_error_status == -1) + else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - yymsg = YY_CAST (char *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); - if (yymsg) - { - yysyntax_error_status - = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); - yymsgp = yymsg; - } - else + yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); + if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = YYENOMEM; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; } } yyerror (&yylloc, result, scanner, yymsgp); - if (yysyntax_error_status == YYENOMEM) + if (yysyntax_error_status == 2) goto yyexhaustedlab; } +# undef YYSYNTAX_ERROR +#endif } yyerror_range[1] = yylloc; + if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ - if (yychar <= SQL_YYEOF) + if (yychar <= YYEOF) { /* Return failure if at end of input. */ - if (yychar == SQL_YYEOF) + if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, &yylloc, result, scanner); - yychar = SQL_HSQL_EMPTY; + yychar = YYEMPTY; } } @@ -5011,14 +4800,13 @@ yyerrorlab: yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ - /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYSYMBOL_YYerror; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) @@ -5032,7 +4820,7 @@ yyerrlab1: yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, result, scanner); + yystos[yystate], yyvsp, yylsp, result, scanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -5043,11 +4831,13 @@ yyerrlab1: YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; - ++yylsp; - YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); + /* Using YYLLOC is tempting, but would change the location of + the lookahead. YYLOC is available though. */ + YYLLOC_DEFAULT (yyloc, yyerror_range, 2); + *++yylsp = yyloc; /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -5069,7 +4859,7 @@ yyabortlab: goto yyreturn; -#if 1 +#if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -5084,7 +4874,7 @@ yyexhaustedlab: | yyreturn -- parsing is finished, return the result. | `-----------------------------------------------------*/ yyreturn: - if (yychar != SQL_HSQL_EMPTY) + if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -5099,19 +4889,20 @@ yyreturn: while (yyssp != yyss) { yydestruct ("Cleanup: popping", - YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, result, scanner); + yystos[+*yyssp], yyvsp, yylsp, result, scanner); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif +#if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); +#endif return yyresult; } - -#line 1261 "bison_parser.y" +#line 1297 "bison_parser.y" /********************************* ** Section 4: Additional C code diff --git a/src/parser/bison_parser.h b/src/parser/bison_parser.h index 7e87207..14f4bf8 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.6.4. */ +/* A Bison parser, made by GNU Bison 3.5.1. */ /* Bison interface for Yacc-like parsers in C @@ -31,9 +31,8 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ #ifndef YY_HSQL_BISON_PARSER_H_INCLUDED # define YY_HSQL_BISON_PARSER_H_INCLUDED @@ -77,168 +76,166 @@ extern int hsql_debug; } \ } -#line 81 "bison_parser.h" +#line 80 "bison_parser.h" -/* Token kinds. */ +/* Token type. */ #ifndef HSQL_TOKENTYPE # define HSQL_TOKENTYPE enum hsql_tokentype { - SQL_HSQL_EMPTY = -2, - SQL_YYEOF = 0, /* "end of file" */ - SQL_HSQL_error = 256, /* error */ - SQL_HSQL_UNDEF = 257, /* "invalid token" */ - SQL_IDENTIFIER = 258, /* IDENTIFIER */ - SQL_STRING = 259, /* STRING */ - SQL_FLOATVAL = 260, /* FLOATVAL */ - SQL_INTVAL = 261, /* INTVAL */ - SQL_DEALLOCATE = 262, /* DEALLOCATE */ - SQL_PARAMETERS = 263, /* PARAMETERS */ - SQL_INTERSECT = 264, /* INTERSECT */ - SQL_TEMPORARY = 265, /* TEMPORARY */ - SQL_TIMESTAMP = 266, /* TIMESTAMP */ - SQL_DISTINCT = 267, /* DISTINCT */ - SQL_NVARCHAR = 268, /* NVARCHAR */ - SQL_RESTRICT = 269, /* RESTRICT */ - SQL_TRUNCATE = 270, /* TRUNCATE */ - SQL_ANALYZE = 271, /* ANALYZE */ - SQL_BETWEEN = 272, /* BETWEEN */ - SQL_CASCADE = 273, /* CASCADE */ - SQL_COLUMNS = 274, /* COLUMNS */ - SQL_CONTROL = 275, /* CONTROL */ - SQL_DEFAULT = 276, /* DEFAULT */ - SQL_EXECUTE = 277, /* EXECUTE */ - SQL_EXPLAIN = 278, /* EXPLAIN */ - SQL_INTEGER = 279, /* INTEGER */ - SQL_NATURAL = 280, /* NATURAL */ - 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_TRUE = 393, /* TRUE */ - SQL_FALSE = 394, /* FALSE */ - SQL_TRANSACTION = 395, /* TRANSACTION */ - SQL_BEGIN = 396, /* BEGIN */ - SQL_COMMIT = 397, /* COMMIT */ - SQL_ROLLBACK = 398, /* ROLLBACK */ - SQL_EQUALS = 399, /* EQUALS */ - SQL_NOTEQUALS = 400, /* NOTEQUALS */ - SQL_LESS = 401, /* LESS */ - SQL_GREATER = 402, /* GREATER */ - SQL_LESSEQ = 403, /* LESSEQ */ - SQL_GREATEREQ = 404, /* GREATEREQ */ - SQL_NOTNULL = 405, /* NOTNULL */ - SQL_UMINUS = 406 /* UMINUS */ + SQL_IDENTIFIER = 258, + SQL_STRING = 259, + SQL_FLOATVAL = 260, + SQL_INTVAL = 261, + SQL_DEALLOCATE = 262, + SQL_PARAMETERS = 263, + SQL_INTERSECT = 264, + SQL_TEMPORARY = 265, + SQL_TIMESTAMP = 266, + SQL_DISTINCT = 267, + SQL_NVARCHAR = 268, + SQL_RESTRICT = 269, + SQL_TRUNCATE = 270, + SQL_ANALYZE = 271, + SQL_BETWEEN = 272, + SQL_CASCADE = 273, + SQL_COLUMNS = 274, + SQL_CONTROL = 275, + SQL_DEFAULT = 276, + SQL_EXECUTE = 277, + SQL_EXPLAIN = 278, + SQL_INTEGER = 279, + SQL_NATURAL = 280, + SQL_PREPARE = 281, + SQL_PRIMARY = 282, + SQL_SCHEMAS = 283, + SQL_SPATIAL = 284, + SQL_VARCHAR = 285, + SQL_VIRTUAL = 286, + SQL_DESCRIBE = 287, + SQL_BEFORE = 288, + SQL_COLUMN = 289, + SQL_CREATE = 290, + SQL_DELETE = 291, + SQL_DIRECT = 292, + SQL_DOUBLE = 293, + SQL_ESCAPE = 294, + SQL_EXCEPT = 295, + SQL_EXISTS = 296, + SQL_EXTRACT = 297, + SQL_CAST = 298, + SQL_FORMAT = 299, + SQL_GLOBAL = 300, + SQL_HAVING = 301, + SQL_IMPORT = 302, + SQL_INSERT = 303, + SQL_ISNULL = 304, + SQL_OFFSET = 305, + SQL_RENAME = 306, + SQL_SCHEMA = 307, + SQL_SELECT = 308, + SQL_SORTED = 309, + SQL_TABLES = 310, + SQL_UNIQUE = 311, + SQL_UNLOAD = 312, + SQL_UPDATE = 313, + SQL_VALUES = 314, + SQL_AFTER = 315, + SQL_ALTER = 316, + SQL_CROSS = 317, + SQL_DELTA = 318, + SQL_FLOAT = 319, + SQL_GROUP = 320, + SQL_INDEX = 321, + SQL_INNER = 322, + SQL_LIMIT = 323, + SQL_LOCAL = 324, + SQL_MERGE = 325, + SQL_MINUS = 326, + SQL_ORDER = 327, + SQL_OUTER = 328, + SQL_RIGHT = 329, + SQL_TABLE = 330, + SQL_UNION = 331, + SQL_USING = 332, + SQL_WHERE = 333, + SQL_CALL = 334, + SQL_CASE = 335, + SQL_CHAR = 336, + SQL_COPY = 337, + SQL_DATE = 338, + SQL_DATETIME = 339, + SQL_DESC = 340, + SQL_DROP = 341, + SQL_ELSE = 342, + SQL_FILE = 343, + SQL_FROM = 344, + SQL_FULL = 345, + SQL_HASH = 346, + SQL_HINT = 347, + SQL_INTO = 348, + SQL_JOIN = 349, + SQL_LEFT = 350, + SQL_LIKE = 351, + SQL_LOAD = 352, + SQL_LONG = 353, + SQL_NULL = 354, + SQL_PLAN = 355, + SQL_SHOW = 356, + SQL_TEXT = 357, + SQL_THEN = 358, + SQL_TIME = 359, + SQL_VIEW = 360, + SQL_WHEN = 361, + SQL_WITH = 362, + SQL_ADD = 363, + SQL_ALL = 364, + SQL_AND = 365, + SQL_ASC = 366, + SQL_END = 367, + SQL_FOR = 368, + SQL_INT = 369, + SQL_KEY = 370, + SQL_NOT = 371, + SQL_OFF = 372, + SQL_SET = 373, + SQL_TOP = 374, + SQL_AS = 375, + SQL_BY = 376, + SQL_IF = 377, + SQL_IN = 378, + SQL_IS = 379, + SQL_OF = 380, + SQL_ON = 381, + SQL_OR = 382, + SQL_TO = 383, + SQL_ARRAY = 384, + SQL_CONCAT = 385, + SQL_ILIKE = 386, + SQL_SECOND = 387, + SQL_MINUTE = 388, + SQL_HOUR = 389, + SQL_DAY = 390, + SQL_MONTH = 391, + SQL_YEAR = 392, + SQL_TRUE = 393, + SQL_FALSE = 394, + SQL_TRANSACTION = 395, + SQL_BEGIN = 396, + SQL_COMMIT = 397, + SQL_ROLLBACK = 398, + SQL_BTREE = 399, + SQL_HASHTABLE = 400, + SQL_SKIPLIST = 401, + SQL_EQUALS = 402, + SQL_NOTEQUALS = 403, + SQL_LESS = 404, + SQL_GREATER = 405, + SQL_LESSEQ = 406, + SQL_GREATEREQ = 407, + SQL_NOTNULL = 408, + SQL_UMINUS = 409 }; - typedef enum hsql_tokentype hsql_token_kind_t; #endif /* Value type. */ @@ -277,6 +274,7 @@ union HSQL_STYPE hsql::LimitDescription* limit; hsql::ColumnDefinition* column_t; hsql::ColumnType column_type_t; + hsql::IndexDataStructureType index_data_structure_type_t; hsql::ImportType import_type_t; hsql::GroupByDescription* group_t; hsql::UpdateClause* update_t; @@ -290,10 +288,11 @@ union HSQL_STYPE std::vector* column_vec; std::vector* update_vec; std::vector* expr_vec; + std::vector*>* expr_vec_vec; std::vector* order_vec; std::vector* with_description_vec; -#line 297 "bison_parser.h" +#line 296 "bison_parser.h" }; typedef union HSQL_STYPE HSQL_STYPE; diff --git a/src/parser/bison_parser.y b/src/parser/bison_parser.y index bbe959a..5bbf953 100755 --- a/src/parser/bison_parser.y +++ b/src/parser/bison_parser.y @@ -137,6 +137,7 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha std::vector* column_vec; std::vector* update_vec; std::vector* expr_vec; + std::vector*>* expr_vec_vec; std::vector* order_vec; std::vector* with_description_vec; } @@ -145,7 +146,7 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha /********************************* ** Destructor symbols *********************************/ -%destructor { } +%destructor { } %destructor { free( ($$.name) ); free( ($$.schema) ); } %destructor { free( ($$) ); } %destructor { @@ -155,7 +156,7 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha } } delete ($$); -} +} %destructor { delete ($$); } <*> @@ -231,12 +232,13 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha %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 expr_list select_list opt_literal_list literal_list hint_list opt_hints insert_list %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 insert_list_list /****************************** ** Token Precedence and Associativity @@ -655,12 +657,12 @@ truncate_statement: * INSERT INTO employees SELECT * FROM stundents ******************************/ insert_statement: - INSERT INTO table_name opt_column_list VALUES '(' literal_list ')' { + INSERT INTO table_name opt_column_list VALUES insert_list_list { $$ = new InsertStatement(kInsertValues); $$->schema = $3.schema; $$->tableName = $3.name; $$->columns = $4; - $$->values = $7; + $$->values = $6; } | INSERT INTO table_name opt_column_list select_no_paren { $$ = new InsertStatement(kInsertSelect); @@ -676,6 +678,15 @@ opt_column_list: '(' ident_commalist ')' { $$ = $2; } | /* empty */ { $$ = nullptr; } ; + +insert_list: + '(' literal_list ')' { $$ = $2; } + ; + +insert_list_list: + insert_list { $$ = new std::vector*> (); $$->push_back($1); } + | insert_list ',' insert_list_list { $$ = $3; $$->push_back($1); } + ; /****************************** diff --git a/src/parser/flex_lexer.cpp b/src/parser/flex_lexer.cpp index a26105c..1bf5384 100644 --- a/src/parser/flex_lexer.cpp +++ b/src/parser/flex_lexer.cpp @@ -1,6 +1,6 @@ -#line 1 "flex_lexer.cpp" +#line 2 "flex_lexer.cpp" -#line 3 "flex_lexer.cpp" +#line 4 "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 158 -#define YY_END_OF_BUFFER 159 +#define YY_NUM_RULES 161 +#define YY_END_OF_BUFFER 162 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -582,28 +582,28 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1082] = +static const flex_int16_t yy_accept[1114] = { 0, - 0, 0, 155, 155, 2, 2, 159, 157, 4, 4, - 157, 157, 147, 153, 147, 147, 150, 147, 147, 147, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 147, 155, 156, 2, 2, 3, + 0, 0, 158, 158, 2, 2, 162, 160, 4, 4, + 160, 160, 150, 156, 150, 150, 153, 150, 150, 150, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 150, 158, 159, 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, 142, 0, 1, 150, - 149, 148, 144, 143, 141, 145, 152, 152, 152, 152, + 2, 2, 2, 2, 2, 4, 145, 0, 1, 153, + 152, 151, 147, 146, 144, 148, 155, 155, 155, 155, - 152, 152, 120, 152, 121, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 122, - 152, 152, 123, 124, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 125, 126, 127, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 128, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 146, 155, 154, 2, 2, - 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, + 155, 155, 120, 155, 155, 121, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 122, 155, 155, 123, 124, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 125, 126, 127, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 128, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 149, 158, 157, + 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -613,43 +613,21 @@ static const flex_int16_t yy_accept[1082] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 151, 148, 108, 152, 109, 152, 152, 110, 152, 111, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 132, 152, 152, 152, 152, 152, 152, + 2, 2, 2, 2, 154, 151, 108, 155, 109, 155, + 155, 110, 155, 111, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 132, 155, - 152, 152, 152, 112, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 113, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 114, 152, 152, - 115, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 116, 152, 152, 117, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 118, 152, - 152, 152, 152, 152, 152, 152, 152, 119, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 155, 155, 155, 155, 155, 155, 155, 155, 112, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 113, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 114, 155, 155, 115, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 116, 155, 155, 117, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 118, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 119, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 152, 152, 152, 152, 152, 152, 152, 78, - - 152, 79, 41, 80, 152, 152, 152, 81, 152, 152, - 82, 152, 152, 152, 152, 84, 152, 152, 152, 85, - 86, 152, 152, 152, 152, 152, 152, 152, 87, 152, - 152, 88, 89, 152, 152, 90, 152, 91, 131, 152, - 152, 152, 152, 152, 152, 92, 152, 93, 94, 95, - 152, 97, 152, 98, 152, 152, 152, 152, 99, 152, - 152, 152, 152, 152, 100, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 101, 152, 152, 152, 152, 102, - 103, 104, 152, 135, 152, 152, 152, 152, 152, 152, - 152, 152, 105, 152, 106, 152, 107, 134, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -661,16 +639,38 @@ static const flex_int16_t yy_accept[1082] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 58, 59, 152, 60, 152, 138, - 152, 152, 152, 152, 152, 152, 61, 152, 152, 152, - 152, 62, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 136, 63, 152, 152, 64, 152, 96, 152, - 65, 66, 152, 152, 152, 152, 67, 68, 69, 70, - 152, 133, 152, 152, 152, 71, 72, 152, 152, 152, - 152, 152, 73, 152, 152, 152, 152, 152, 152, 74, - 152, 152, 152, 152, 75, 152, 152, 152, 76, 152, - 152, 152, 77, 2, 2, 2, 2, 2, 2, 2, + 155, 155, 155, 155, 155, 155, 155, 155, 78, 155, + 79, 41, 80, 155, 155, 155, 81, 155, 155, 82, + 155, 155, 155, 155, 84, 155, 155, 155, 85, 86, + 155, 155, 155, 155, 155, 155, 155, 87, 155, 155, + 88, 89, 155, 155, 90, 155, 91, 131, 155, 155, + 155, 155, 155, 155, 92, 155, 93, 94, 95, 155, + 97, 155, 98, 155, 155, 155, 155, 99, 155, 155, + 155, 155, 155, 100, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 101, 155, 155, 155, 155, 155, 102, + 103, 104, 155, 135, 155, 155, 155, 155, 155, 155, + + 155, 155, 105, 155, 106, 155, 107, 134, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 58, 59, 155, 60, + 155, 138, 155, 141, 155, 155, 155, 155, 155, 61, + 155, 155, 155, 155, 62, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 136, 63, 155, 155, 64, + 155, 155, 96, 155, 65, 66, 155, 155, 155, 155, + 67, 68, 69, 70, 155, 133, 155, 155, 155, 71, + 72, 155, 155, 155, 155, 155, 73, 155, 155, 155, + 155, 155, 155, 155, 74, 155, 155, 155, 155, 75, + 155, 155, 155, 76, 155, 155, 155, 77, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -678,31 +678,35 @@ static const flex_int16_t yy_accept[1082] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 152, 31, 152, 152, 32, 140, 152, 33, - 152, 152, 152, 34, 152, 35, 152, 36, 37, 38, - 152, 39, 152, 152, 42, 43, 44, 45, 46, 152, - 152, 47, 130, 152, 152, 48, 152, 152, 152, 49, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 155, 31, 155, 155, 32, 140, 155, 33, 155, 155, + 155, 34, 155, 35, 155, 36, 37, 38, 155, 39, - 152, 152, 50, 129, 51, 52, 152, 53, 152, 152, - 152, 152, 54, 55, 56, 57, 152, 152, 2, 2, + 155, 155, 42, 43, 155, 44, 45, 46, 155, 155, + 47, 130, 155, 155, 48, 155, 155, 155, 49, 155, + 155, 50, 129, 51, 155, 52, 155, 53, 155, 155, + 155, 155, 54, 55, 56, 57, 155, 155, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 15, 16, 17, 18, 19, 152, - 152, 20, 152, 152, 21, 22, 40, 23, 152, 24, - 152, 152, 25, 26, 152, 152, 27, 28, 152, 152, + 2, 2, 2, 2, 2, 2, 15, 16, 17, 18, - 152, 152, 29, 30, 2, 2, 2, 2, 2, 2, + 19, 155, 155, 20, 155, 155, 21, 22, 40, 155, + 23, 155, 24, 155, 155, 25, 26, 155, 155, 27, + 155, 28, 155, 155, 155, 155, 29, 30, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 83, 152, 10, 11, 152, 12, - 152, 13, 139, 152, 152, 152, 14, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 152, 7, 152, 8, 9, 152, 2, 2, 2, 2, - 2, 2, 5, 6, 152, 2, 2, 2, 137, 2, - 0 + 83, 155, 10, 11, 155, 155, 12, 155, 13, 139, + 143, 155, 155, 155, 14, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 155, 142, 7, 155, 8, 9, 155, 2, 2, 2, + + 2, 2, 2, 2, 5, 6, 155, 2, 2, 2, + 137, 2, 0 } ; static const YY_CHAR yy_ec[256] = @@ -748,173 +752,177 @@ static const YY_CHAR yy_meta[68] = 5, 5, 5, 5, 5, 5, 1 } ; -static const flex_int16_t yy_base[1089] = +static const flex_int16_t yy_base[1121] = { 0, - 0, 0, 422, 414, 67, 0, 410, 4309, 133, 135, - 368, 0, 4309, 4309, 131, 345, 133, 132, 312, 300, + 0, 0, 369, 368, 67, 0, 373, 5704, 133, 135, + 353, 0, 5704, 5704, 131, 327, 133, 132, 318, 312, 129, 129, 137, 135, 145, 196, 171, 184, 188, 124, - 141, 183, 228, 230, 236, 235, 0, 250, 280, 323, - 257, 194, 231, 144, 243, 0, 297, 0, 259, 272, - 276, 276, 0, 0, 161, 259, 293, 294, 247, 224, - 381, 448, 502, 554, 602, 654, 301, 377, 702, 302, - 304, 379, 440, 754, 802, 449, 358, 453, 852, 904, - 499, 524, 553, 366, 164, 312, 4309, 221, 4309, 308, - 212, 209, 4309, 4309, 4309, 4309, 0, 147, 267, 296, + 141, 183, 228, 230, 236, 235, 0, 250, 290, 333, + 269, 194, 231, 146, 253, 0, 309, 0, 259, 272, + 292, 279, 0, 0, 161, 271, 279, 290, 257, 224, + 391, 458, 512, 564, 605, 657, 301, 393, 700, 329, + 368, 450, 459, 751, 800, 506, 387, 551, 846, 898, + 457, 566, 625, 484, 164, 307, 5704, 221, 5704, 303, + 212, 209, 5704, 5704, 5704, 5704, 0, 242, 267, 306, - 317, 302, 322, 450, 0, 318, 338, 552, 391, 439, - 596, 406, 341, 386, 384, 403, 457, 641, 451, 454, - 454, 453, 464, 487, 493, 494, 492, 498, 495, 0, - 510, 505, 691, 509, 544, 532, 561, 560, 608, 556, - 563, 569, 583, 592, 601, 617, 614, 0, 621, 611, - 615, 636, 665, 637, 655, 653, 659, 700, 676, 680, - 703, 707, 700, 712, 706, 707, 732, 749, 725, 736, - 745, 759, 757, 745, 765, 4309, 0, 4309, 0, 360, - 0, 212, 0, 364, 193, 190, 0, 0, 0, 0, - 762, 793, 790, 824, 847, 794, 856, 891, 806, 895, + 395, 276, 301, 571, 290, 0, 394, 322, 668, 334, + 441, 682, 398, 306, 362, 379, 410, 457, 744, 455, + 460, 500, 501, 507, 511, 510, 511, 539, 514, 514, + 0, 534, 547, 608, 554, 571, 561, 583, 610, 715, + 596, 601, 606, 612, 615, 624, 663, 662, 0, 667, + 653, 658, 676, 718, 716, 683, 719, 726, 765, 721, + 729, 726, 747, 753, 754, 765, 770, 768, 788, 808, + 788, 789, 795, 832, 797, 783, 825, 5704, 0, 5704, + 0, 366, 0, 212, 0, 362, 193, 190, 0, 0, + 0, 0, 838, 890, 877, 900, 940, 930, 953, 974, - 905, 953, 930, 939, 1005, 955, 956, 984, 896, 1009, - 1017, 1067, 1007, 1023, 1048, 1049, 1053, 1059, 1081, 1097, - 1099, 1102, 1115, 993, 1121, 1112, 1170, 1127, 1133, 1083, - 1155, 1181, 1195, 1210, 1224, 1225, 1221, 1238, 1239, 1247, - 1172, 1151, 1255, 1249, 1277, 1283, 1288, 1298, 1293, 1309, - 1311, 1344, 1347, 1333, 1352, 1365, 1368, 1350, 1382, 1393, - 1405, 1419, 1407, 1418, 1444, 1442, 1416, 1441, 1474, 0, - 4309, 145, 0, 768, 0, 769, 766, 0, 812, 0, - 838, 853, 841, 853, 1460, 848, 869, 913, 932, 938, - 967, 951, 970, 0, 964, 1022, 1161, 1026, 1047, 1046, + 971, 990, 990, 992, 1033, 1023, 1046, 1098, 1044, 1076, + 1100, 1116, 1082, 1113, 1166, 1141, 1165, 1169, 1190, 1209, + 1218, 1234, 1243, 1269, 1273, 1279, 1200, 1287, 1297, 1346, + 1323, 1327, 1336, 1375, 1371, 1427, 1392, 1401, 1426, 1429, + 1440, 1457, 1465, 1478, 1475, 1501, 1503, 1511, 1514, 1532, + 1535, 1555, 1565, 1583, 1589, 1591, 1617, 1626, 1647, 1645, + 1663, 1573, 1676, 1686, 1699, 1725, 1735, 1716, 1753, 1770, + 1749, 1774, 1788, 0, 5704, 145, 0, 827, 0, 833, + 834, 0, 851, 0, 841, 851, 846, 869, 879, 954, + 874, 879, 891, 891, 911, 960, 979, 1008, 0, 1015, - 1080, 1156, 1186, 0, 1209, 1229, 1237, 1264, 1292, 1287, - 1287, 1354, 1387, 1400, 1451, 1465, 1476, 1460, 1474, 1475, - 1465, 1468, 1484, 1482, 1493, 1495, 1496, 1505, 1482, 1500, - 0, 1495, 1511, 1508, 1514, 1518, 1514, 1516, 1508, 1511, - 1511, 0, 1521, 1516, 1516, 1531, 1533, 1538, 1526, 1533, - 1538, 1551, 1533, 1546, 1543, 1552, 1549, 1563, 0, 1546, - 1550, 1551, 1560, 1557, 1554, 1561, 1572, 0, 1569, 1580, - 1571, 1572, 1588, 1576, 1571, 1590, 1580, 1585, 1593, 1598, - 1590, 0, 140, 1604, 1617, 1618, 1619, 1634, 1620, 1636, - 1622, 1650, 1653, 1658, 1655, 1692, 1686, 1688, 1701, 1696, + 1031, 1062, 1030, 1029, 1030, 1051, 1048, 1087, 0, 1099, + 1098, 1137, 1132, 1142, 1138, 1153, 1171, 1178, 1179, 1187, + 1214, 1226, 1212, 1232, 1235, 1225, 1228, 1268, 1267, 1278, + 1292, 1298, 1330, 1321, 1332, 0, 1338, 1362, 1377, 1385, + 1401, 1429, 1457, 1454, 1466, 1497, 0, 1512, 1520, 1521, + 1539, 1567, 1572, 1569, 1597, 1614, 1628, 1612, 1626, 1627, + 1650, 1642, 1658, 0, 1657, 1669, 1666, 1685, 1705, 1706, + 1706, 1721, 1738, 0, 1742, 1798, 1792, 1744, 1783, 1777, + 1776, 1801, 1787, 1794, 1805, 1817, 1809, 0, 140, 1823, + 1824, 1833, 1837, 1854, 1858, 1867, 1877, 1883, 1891, 1908, - 1671, 1724, 1732, 1710, 1722, 1754, 1745, 1740, 1758, 1750, - 1775, 1789, 1780, 1776, 1784, 1810, 1794, 1826, 1815, 1825, - 1834, 1844, 1828, 1843, 1860, 1869, 1879, 1897, 1882, 1900, - 1888, 1918, 1923, 1922, 1931, 1912, 1934, 1937, 1946, 1971, - 1976, 1952, 1962, 1974, 1986, 2008, 2019, 2000, 2024, 2016, - 2010, 2038, 2040, 2041, 2049, 2050, 2072, 2073, 2078, 2086, - 2083, 2082, 2084, 2108, 2112, 2127, 2116, 2138, 2124, 2126, - 2149, 2137, 2162, 2180, 2170, 2168, 2192, 2166, 2178, 2202, - 2221, 2206, 2224, 2235, 2247, 2250, 2265, 2260, 2264, 2289, - 2300, 2288, 1608, 1639, 1746, 1818, 1827, 1840, 1878, 0, + 1912, 1929, 1942, 1945, 1966, 1975, 1979, 1996, 2004, 2014, + 2005, 2015, 2033, 2049, 2039, 2070, 2073, 2074, 2087, 2098, + 2104, 2108, 2137, 2127, 2141, 2158, 2175, 2176, 2192, 2193, + 2228, 2229, 2230, 2246, 2263, 2269, 2279, 2298, 2300, 2304, + 2308, 2333, 2334, 2337, 2358, 2362, 2371, 2388, 2392, 2396, + 2402, 2406, 2432, 2440, 2466, 2469, 2485, 2450, 2494, 2502, + 2518, 2535, 2539, 2504, 2543, 2568, 2569, 2587, 2593, 2603, + 2597, 2633, 2631, 2622, 2647, 2641, 2666, 2672, 2685, 2682, + 2691, 2715, 2725, 2701, 2741, 2731, 2739, 2755, 2765, 2784, + 2790, 2793, 2809, 2828, 2849, 2839, 2838, 2881, 2892, 2888, - 1887, 0, 0, 0, 1876, 1936, 1935, 0, 1938, 1981, - 2099, 2111, 2156, 2217, 2246, 2233, 2256, 2268, 2279, 0, - 0, 2284, 2285, 2288, 2295, 2318, 2321, 2318, 0, 2304, - 2325, 0, 0, 2328, 2315, 0, 2323, 0, 0, 2333, - 2321, 2319, 2326, 2327, 2341, 0, 2335, 0, 0, 0, - 2334, 0, 2343, 0, 2352, 2341, 2354, 2345, 0, 2364, - 2363, 2351, 2355, 2363, 0, 2376, 2377, 2366, 2362, 2363, - 2383, 2378, 2378, 2390, 0, 2392, 2389, 2394, 2386, 0, - 0, 2383, 2389, 0, 2406, 2397, 2392, 2413, 2395, 2409, - 2412, 2413, 0, 2401, 0, 2418, 0, 0, 2427, 2428, + 1815, 1846, 1842, 1852, 1894, 1907, 1921, 1937, 0, 1945, + 0, 0, 0, 1938, 1943, 1938, 0, 1946, 1956, 1965, + 1984, 2020, 2029, 2054, 2052, 2080, 2075, 2076, 0, 0, + 2088, 2092, 2106, 2117, 2142, 2147, 2144, 0, 2138, 2171, + 0, 0, 2181, 2176, 2183, 2206, 0, 0, 2227, 2218, + 2213, 2228, 2234, 2354, 0, 2288, 0, 0, 0, 2288, + 0, 2325, 0, 2336, 2324, 2365, 2361, 0, 2395, 2427, + 2432, 2433, 2443, 0, 2460, 2465, 2456, 2463, 2465, 2502, + 2507, 2511, 2532, 0, 2527, 2540, 2569, 2579, 2582, 0, + 0, 2580, 2613, 0, 2634, 2634, 2636, 2675, 2661, 2675, - 2422, 2426, 2450, 2451, 2432, 2456, 2461, 2462, 2465, 2466, - 2491, 2496, 2494, 2495, 2504, 2525, 2517, 2528, 2520, 2550, - 2533, 2558, 2576, 2579, 2561, 2573, 2582, 2604, 2607, 2612, - 2621, 2617, 2647, 2630, 2633, 2646, 2656, 2638, 2662, 2675, - 2681, 2684, 2687, 2686, 2690, 2700, 2705, 2716, 2726, 2729, - 2738, 2721, 2750, 2744, 2754, 2755, 2772, 2759, 2783, 2780, - 2788, 2798, 2821, 2796, 2811, 2822, 2826, 2837, 2852, 2854, - 2855, 2860, 2870, 2878, 2891, 2888, 2909, 2912, 2914, 2924, - 2926, 2928, 2954, 2937, 2942, 2940, 2943, 2966, 2968, 2945, - 2978, 2991, 2994, 3006, 2997, 3020, 2996, 3028, 3030, 3036, + 2707, 2707, 0, 2704, 0, 2726, 0, 0, 2898, 2916, + 2926, 2927, 2937, 2951, 2955, 2961, 2965, 2990, 2989, 2991, + 2999, 3015, 3024, 3034, 3025, 3043, 3064, 3053, 3082, 3083, + 3092, 3108, 3127, 3138, 3117, 3161, 3151, 3157, 3186, 3194, + 3196, 3200, 3229, 3230, 3231, 3240, 3248, 3265, 3254, 3264, + 3293, 3283, 3299, 3309, 3317, 3323, 3327, 3348, 3352, 3376, + 3387, 3404, 3366, 3405, 3415, 3421, 3438, 3440, 3449, 3459, + 3475, 3477, 3494, 3500, 3498, 3528, 3531, 3534, 3537, 3567, + 3583, 3585, 3593, 3606, 3623, 3624, 3634, 3659, 3660, 3669, + 3693, 3677, 3710, 3694, 3723, 3731, 3749, 3733, 3747, 3768, - 3034, 3042, 3045, 3046, 0, 0, 2509, 0, 2584, 0, - 2587, 2590, 2613, 2657, 2687, 2805, 0, 2830, 2834, 2860, - 2900, 0, 2973, 2993, 3023, 3051, 3060, 3049, 3053, 3056, - 3067, 3076, 0, 0, 3061, 3073, 0, 3080, 0, 3069, - 0, 0, 3070, 3086, 3074, 3083, 0, 0, 0, 0, - 3094, 0, 3100, 3096, 3085, 0, 0, 3102, 3091, 3092, - 3106, 3104, 0, 3114, 3118, 3117, 3103, 3120, 3124, 3108, - 3111, 3110, 3132, 3134, 0, 3134, 3137, 3138, 0, 3125, - 3144, 3146, 0, 3144, 3148, 3153, 3150, 3156, 3158, 3159, - 3182, 3184, 3172, 3207, 3196, 3198, 3222, 3228, 3230, 3212, + 3784, 3785, 3803, 3793, 3821, 3838, 3824, 3847, 3855, 3857, + 3873, 3890, 3881, 3892, 3898, 3909, 0, 0, 2723, 0, + 2760, 0, 2776, 0, 2780, 2786, 2783, 2804, 2815, 0, + 2815, 2823, 2827, 2850, 0, 2848, 2847, 2863, 2873, 2878, + 2868, 2872, 2879, 2902, 2934, 0, 0, 2952, 2988, 0, + 3004, 3019, 0, 3014, 0, 0, 3044, 3060, 3055, 3081, + 0, 0, 0, 0, 3093, 0, 3118, 3115, 3107, 0, + 0, 3133, 3130, 3133, 3152, 3152, 0, 3166, 3179, 3191, + 3176, 3188, 3208, 3214, 3221, 3246, 3255, 3308, 3326, 0, + 3328, 3334, 3353, 0, 3343, 3362, 3386, 0, 3911, 3927, - 3213, 3247, 3241, 3262, 3246, 3252, 3270, 3276, 3281, 3280, - 3304, 3286, 3305, 3315, 3314, 3316, 3338, 3319, 3344, 3349, - 3350, 3353, 3354, 3378, 3382, 3379, 3383, 3384, 3387, 3388, - 3393, 3421, 3433, 3412, 3418, 3422, 3423, 3451, 3461, 3446, - 3452, 3455, 3489, 3490, 3477, 3500, 3506, 3511, 3521, 3530, - 3525, 3555, 3560, 3467, 3519, 3564, 3549, 3554, 3559, 3565, - 3593, 3594, 3162, 0, 3179, 3194, 3222, 0, 3303, 0, - 3312, 3347, 3442, 0, 3498, 0, 3498, 0, 0, 0, - 3544, 0, 3586, 3582, 0, 0, 0, 0, 0, 3585, - 3599, 0, 0, 3596, 3608, 0, 3590, 3608, 3589, 0, + 3944, 3935, 3946, 3948, 3952, 3981, 3985, 3989, 3987, 4020, + 4006, 4022, 4039, 4041, 4045, 4074, 4075, 4076, 4084, 4100, + 4110, 4113, 4114, 4124, 4148, 4149, 4167, 4158, 4159, 4183, + 4197, 4193, 4222, 4221, 4232, 4238, 4246, 4255, 4256, 4257, + 4281, 4300, 4290, 4291, 4294, 4324, 4325, 4335, 4353, 4354, + 4343, 4378, 4379, 4387, 4397, 4403, 4413, 4427, 4436, 4452, + 4453, 4462, 4466, 4487, 4497, 4505, 4516, 4506, 4522, 4545, + 4555, 4556, 4559, 4585, 4589, 4593, 4610, 4599, 4633, 4623, + 3383, 0, 3392, 3443, 3431, 0, 3447, 0, 3448, 3463, + 3463, 0, 3492, 0, 3501, 0, 0, 0, 3512, 0, - 3612, 3617, 3603, 0, 0, 0, 3611, 0, 3623, 3627, - 3629, 3613, 0, 0, 0, 0, 3616, 3626, 3638, 3639, - 3643, 3647, 3648, 3649, 3657, 3651, 3653, 3683, 3672, 3682, - 3715, 3693, 3707, 3697, 3701, 3706, 3711, 3716, 3737, 3741, - 3725, 3747, 3749, 3750, 3751, 3766, 3755, 3760, 3765, 3801, - 3795, 3789, 3790, 3799, 3800, 3803, 3831, 3840, 3825, 3814, - 3843, 3844, 3855, 3849, 3857, 3883, 3888, 3885, 3854, 3894, - 3897, 3898, 3909, 3919, 0, 0, 0, 0, 0, 3868, - 3897, 0, 3907, 3896, 0, 0, 0, 0, 3918, 0, - 3910, 3928, 0, 0, 3916, 3927, 0, 0, 3924, 3932, + 3523, 3518, 0, 0, 3547, 0, 0, 0, 3550, 3565, + 0, 0, 3561, 3573, 0, 3557, 3574, 3568, 0, 3621, + 3630, 3622, 0, 0, 3631, 0, 3666, 0, 3689, 3692, + 3701, 3713, 0, 0, 0, 0, 3716, 3727, 4634, 4644, + 4658, 4662, 4683, 4672, 4701, 4702, 4712, 4736, 4711, 4737, + 4745, 4755, 4773, 4774, 4776, 4790, 4799, 4807, 4824, 4825, + 4828, 4838, 4859, 4842, 4861, 4877, 4878, 4887, 4895, 4896, + 4921, 4930, 4912, 4931, 4947, 4949, 4960, 4983, 4984, 4986, + 4970, 5014, 5022, 5020, 5038, 5024, 5059, 5077, 5078, 5068, + 5087, 5096, 5112, 5113, 5122, 5141, 0, 0, 0, 0, - 3927, 3947, 0, 0, 3948, 3951, 3952, 3957, 3961, 3962, - 3963, 3965, 3973, 3976, 3987, 3997, 4001, 4002, 4013, 4005, - 4026, 4015, 4016, 4027, 4030, 4031, 4041, 4055, 4056, 4059, - 4065, 4070, 4071, 4081, 0, 4069, 0, 0, 4072, 0, - 4076, 0, 0, 4073, 4084, 4095, 0, 4104, 4110, 4109, - 4113, 4119, 4115, 4145, 4121, 4123, 4127, 4144, 4149, 4159, - 4105, 0, 4149, 0, 0, 4157, 4173, 4175, 4183, 4178, - 4181, 4189, 0, 0, 4168, 4187, 4211, 4212, 0, 4213, - 4309, 4278, 4283, 135, 4288, 4293, 4298, 4303 + 0, 3739, 3749, 0, 3763, 3764, 0, 0, 0, 3780, + 0, 3794, 0, 3803, 3842, 0, 0, 3837, 3850, 0, + 3844, 0, 3882, 3895, 3899, 3916, 0, 0, 5130, 5131, + 5165, 5166, 5167, 5176, 5201, 5184, 5190, 5200, 5219, 5225, + 5229, 5250, 5253, 5281, 5263, 5289, 5298, 5299, 5307, 5315, + 5332, 5324, 5333, 5343, 5368, 5369, 5367, 5378, 5386, 5392, + 0, 3934, 0, 0, 3970, 3968, 0, 4004, 0, 0, + 0, 3999, 4039, 4051, 0, 5402, 5403, 5421, 5427, 5431, + 5437, 5440, 5470, 5461, 5471, 5480, 5489, 5514, 5515, 5506, + 4058, 0, 0, 4057, 0, 0, 4095, 5523, 5524, 5540, + + 5549, 5558, 5559, 5583, 0, 0, 4099, 5577, 5594, 5602, + 0, 5608, 5704, 5673, 5678, 135, 5683, 5688, 5693, 5698 } ; -static const flex_int16_t yy_def[1089] = +static const flex_int16_t yy_def[1121] = { 0, - 1081, 1, 1082, 1082, 1081, 5, 1081, 1081, 1081, 1081, - 1081, 1083, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1081, 1085, 1081, 1086, 1086, 1081, - 1086, 1087, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, - 1088, 1088, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 1086, 1081, 1081, 1083, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1084, 1084, 1084, 1084, + 1113, 1, 1114, 1114, 1113, 5, 1113, 1113, 1113, 1113, + 1113, 1115, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1113, 1117, 1113, 1118, 1118, 1113, + 1118, 1119, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, + 1120, 1120, 62, 63, 62, 63, 63, 63, 65, 63, + 62, 62, 62, 63, 63, 63, 62, 62, 62, 63, + 65, 63, 63, 62, 1118, 1113, 1113, 1115, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1116, 1116, 1116, 1116, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1081, 1085, 1081, 1086, 1086, - 1086, 1087, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1113, 1117, 1113, + 1118, 1118, 1118, 1119, 1118, 1118, 1118, 1118, 1118, 1118, + 1118, 1118, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 65, 62, 65, 62, 62, 65, 65, 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, + 65, 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, 1086, - 1081, 1081, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, + 62, 62, 62, 1118, 1113, 1113, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1086, 1086, 62, 62, 62, 62, 62, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1118, 1118, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, @@ -926,20 +934,20 @@ static const flex_int16_t yy_def[1089] = 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, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, + 62, 62, 62, 62, 62, 62, 62, 75, 62, 62, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 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, @@ -950,16 +958,16 @@ static const flex_int16_t yy_def[1089] = 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, @@ -967,34 +975,38 @@ static const flex_int16_t yy_def[1089] = 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, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 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, 62, 62, 62, - 62, 62, 62, 62, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, + 62, 62, 62, 62, 62, 62, 1116, 1116, 1116, 1116, - 1084, 1084, 1084, 1084, 62, 62, 62, 62, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 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, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1084, 1084, 1084, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 1084, 1084, 1084, 1084, 1084, 1084, 62, 62, 62, 62, - 62, 62, 1084, 1084, 1084, 62, 62, 62, 1084, 62, - 0, 1081, 1081, 1081, 1081, 1081, 1081, 1081 + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 62, 62, 62, + + 62, 62, 62, 62, 1116, 1116, 1116, 62, 62, 62, + 1116, 62, 0, 1113, 1113, 1113, 1113, 1113, 1113, 1113 } ; -static const flex_int16_t yy_nxt[4377] = +static const flex_int16_t yy_nxt[5772] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, @@ -1011,475 +1023,629 @@ static const flex_int16_t yy_nxt[4377] = 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 77, 84, 77, 85, 86, 86, 86, 86, 89, 97, - 90, 92, 90, 93, 94, 98, 104, 99, 110, 383, - 106, 135, 111, 100, 272, 101, 112, 107, 136, 102, - 103, 175, 113, 273, 108, 114, 105, 109, 183, 115, - 184, 116, 98, 104, 99, 110, 117, 106, 135, 111, - 100, 118, 101, 112, 107, 136, 102, 103, 175, 113, - 273, 108, 114, 105, 109, 125, 115, 127, 116, 383, + 90, 92, 90, 93, 94, 98, 104, 99, 111, 389, + 107, 136, 112, 100, 276, 101, 113, 108, 137, 102, + 103, 105, 114, 177, 109, 115, 106, 110, 185, 116, + 186, 117, 98, 104, 99, 111, 118, 107, 136, 112, + 100, 119, 101, 113, 108, 137, 102, 103, 105, 114, + 177, 109, 115, 106, 110, 126, 116, 128, 117, 389, - 137, 126, 185, 117, 138, 128, 130, 171, 118, 119, - 139, 129, 131, 132, 133, 172, 382, 120, 272, 134, - 121, 91, 125, 122, 127, 271, 123, 137, 126, 124, - 270, 138, 128, 130, 171, 190, 119, 139, 129, 131, - 132, 133, 172, 143, 120, 140, 134, 121, 151, 141, - 122, 173, 174, 123, 147, 142, 124, 144, 189, 152, - 180, 86, 148, 145, 146, 153, 149, 154, 185, 150, - 143, 155, 140, 86, 86, 151, 141, 156, 173, 174, - 179, 147, 142, 168, 144, 169, 152, 181, 170, 148, - 145, 146, 153, 149, 154, 157, 150, 158, 155, 274, + 138, 127, 187, 118, 139, 129, 131, 173, 119, 120, + 140, 130, 132, 133, 134, 174, 388, 121, 276, 135, + 122, 91, 126, 123, 128, 275, 124, 138, 127, 125, + 274, 139, 129, 131, 173, 192, 120, 140, 130, 132, + 133, 134, 174, 144, 121, 141, 135, 122, 152, 142, + 123, 175, 176, 124, 148, 143, 125, 145, 277, 153, + 182, 86, 149, 146, 147, 154, 150, 155, 191, 151, + 144, 156, 141, 86, 86, 152, 142, 157, 175, 176, + 187, 148, 143, 181, 145, 277, 153, 188, 186, 149, + 146, 147, 154, 150, 155, 170, 151, 171, 156, 278, - 159, 186, 184, 178, 156, 187, 188, 160, 161, 176, - 168, 96, 169, 86, 86, 170, 92, 90, 191, 191, - 275, 230, 157, 95, 158, 219, 274, 159, 276, 229, - 277, 220, 279, 278, 160, 161, 162, 280, 191, 191, - 163, 191, 284, 164, 165, 191, 191, 275, 230, 285, - 166, 286, 219, 167, 91, 276, 229, 277, 220, 279, - 278, 180, 86, 162, 280, 191, 191, 163, 191, 284, - 164, 165, 186, 184, 301, 191, 285, 166, 286, 87, - 167, 179, 179, 269, 179, 179, 179, 179, 179, 179, - 221, 179, 179, 179, 191, 191, 231, 192, 222, 193, + 172, 189, 190, 183, 157, 158, 283, 159, 86, 86, + 160, 92, 90, 161, 193, 180, 284, 162, 163, 178, + 288, 193, 170, 96, 171, 222, 278, 172, 193, 95, + 279, 223, 158, 283, 159, 291, 91, 160, 280, 306, + 161, 193, 193, 284, 162, 163, 164, 288, 193, 193, + 165, 296, 222, 166, 167, 193, 232, 279, 223, 193, + 168, 297, 291, 169, 87, 280, 306, 182, 86, 193, + 188, 186, 1113, 164, 47, 47, 193, 165, 296, 1113, + 166, 167, 1113, 232, 1113, 233, 193, 168, 297, 307, + 169, 181, 181, 1113, 181, 181, 181, 181, 181, 181, - 232, 301, 191, 191, 223, 194, 233, 195, 291, 1081, - 269, 196, 197, 302, 191, 303, 191, 221, 292, 304, - 47, 191, 191, 231, 192, 222, 193, 232, 47, 1081, - 191, 223, 194, 233, 195, 291, 299, 300, 196, 197, - 302, 191, 303, 191, 1081, 292, 304, 179, 179, 179, - 1081, 179, 179, 179, 179, 179, 179, 234, 179, 179, - 179, 235, 245, 299, 300, 198, 191, 236, 281, 282, - 248, 293, 305, 246, 249, 311, 294, 191, 312, 247, - 250, 313, 283, 314, 234, 199, 191, 1081, 235, 245, - 191, 315, 198, 191, 236, 281, 282, 248, 293, 305, + 193, 181, 181, 181, 193, 193, 224, 194, 281, 195, + 308, 282, 233, 193, 225, 196, 307, 197, 289, 193, + 226, 198, 199, 193, 193, 290, 309, 193, 304, 305, + 1113, 193, 193, 224, 194, 281, 195, 308, 282, 1113, + 193, 225, 196, 1113, 197, 289, 193, 226, 198, 199, + 193, 193, 290, 309, 1113, 304, 305, 181, 181, 181, + 1113, 181, 181, 181, 181, 181, 181, 234, 181, 181, + 181, 235, 310, 298, 1113, 200, 237, 236, 299, 316, + 238, 193, 193, 266, 317, 267, 239, 193, 268, 1113, + 201, 193, 1113, 193, 234, 202, 193, 1113, 235, 310, - 246, 249, 311, 294, 191, 312, 247, 250, 313, 283, - 314, 316, 199, 191, 179, 200, 191, 191, 315, 191, - 317, 318, 201, 319, 321, 262, 320, 263, 322, 202, - 264, 323, 203, 324, 1081, 329, 191, 265, 316, 191, - 1081, 191, 200, 191, 1081, 266, 191, 317, 318, 201, - 319, 321, 262, 320, 263, 322, 202, 264, 323, 203, - 324, 191, 329, 191, 265, 330, 191, 204, 191, 331, - 191, 205, 266, 267, 268, 206, 287, 288, 289, 332, - 290, 207, 1081, 333, 208, 334, 338, 1081, 191, 339, - 191, 191, 330, 1081, 204, 340, 331, 191, 205, 1081, + 298, 273, 200, 237, 236, 299, 316, 238, 193, 193, + 266, 317, 267, 239, 193, 268, 193, 201, 193, 248, + 193, 193, 202, 193, 181, 203, 193, 318, 273, 193, + 249, 319, 204, 193, 320, 321, 250, 322, 323, 205, + 326, 1113, 206, 193, 193, 1113, 248, 327, 193, 193, + 1113, 1113, 203, 193, 318, 328, 193, 249, 319, 204, + 193, 320, 321, 250, 322, 323, 205, 326, 251, 206, + 324, 193, 252, 325, 327, 329, 193, 207, 253, 269, + 334, 208, 328, 193, 193, 209, 193, 270, 193, 285, + 286, 210, 335, 193, 211, 251, 193, 324, 336, 252, - 267, 268, 206, 287, 288, 289, 332, 290, 207, 295, - 333, 208, 334, 338, 296, 341, 339, 191, 191, 191, - 297, 335, 340, 336, 342, 343, 209, 298, 210, 1081, - 344, 1081, 345, 211, 337, 1081, 295, 346, 212, 191, - 1081, 296, 341, 347, 1081, 348, 191, 297, 335, 349, - 336, 342, 343, 209, 298, 210, 306, 344, 307, 345, - 211, 337, 308, 352, 346, 212, 191, 213, 353, 309, - 347, 191, 348, 310, 354, 214, 349, 355, 215, 356, - 1081, 216, 350, 306, 217, 307, 351, 218, 1081, 308, - 352, 191, 1081, 1081, 213, 353, 309, 1081, 191, 1081, + 325, 337, 329, 287, 207, 253, 269, 334, 208, 1113, + 193, 193, 209, 193, 270, 193, 285, 286, 210, 335, + 193, 211, 193, 193, 330, 336, 343, 344, 337, 212, + 287, 213, 345, 338, 331, 339, 214, 193, 193, 332, + 333, 215, 193, 1113, 346, 271, 272, 347, 348, 193, + 1113, 330, 193, 343, 344, 193, 212, 1113, 213, 345, + 338, 331, 339, 214, 193, 193, 332, 333, 215, 193, + 216, 346, 271, 272, 347, 348, 349, 193, 217, 193, + 350, 218, 193, 351, 219, 352, 1113, 220, 353, 354, + 221, 1113, 292, 293, 294, 300, 295, 216, 1113, 1113, - 310, 354, 214, 360, 355, 215, 356, 325, 216, 350, - 361, 217, 1081, 351, 218, 357, 362, 326, 191, 191, - 224, 363, 327, 328, 358, 364, 225, 226, 227, 366, - 360, 367, 359, 228, 325, 368, 365, 361, 1081, 191, - 1081, 373, 357, 362, 326, 369, 191, 224, 363, 327, - 328, 358, 364, 225, 226, 227, 366, 374, 367, 359, - 228, 1081, 368, 365, 1081, 370, 191, 237, 373, 375, - 371, 191, 369, 372, 379, 376, 377, 380, 381, 191, - 1081, 238, 1081, 1081, 374, 493, 494, 239, 240, 378, - 495, 191, 370, 1081, 237, 1081, 375, 371, 191, 191, + 301, 1113, 359, 349, 193, 217, 302, 350, 218, 1113, + 351, 219, 352, 303, 220, 353, 354, 221, 227, 292, + 293, 294, 300, 295, 228, 229, 230, 301, 340, 359, + 341, 231, 1113, 302, 1113, 355, 193, 1113, 1113, 356, + 303, 342, 357, 360, 1113, 227, 361, 358, 365, 1113, + 366, 228, 229, 230, 1113, 340, 367, 341, 231, 311, + 368, 312, 355, 193, 240, 313, 356, 369, 342, 357, + 360, 193, 314, 361, 358, 365, 315, 366, 241, 370, + 362, 193, 372, 367, 242, 243, 311, 368, 312, 363, + 371, 240, 313, 1113, 369, 373, 374, 364, 193, 314, - 372, 379, 376, 377, 380, 381, 191, 191, 238, 384, - 191, 191, 493, 494, 239, 240, 378, 495, 191, 191, - 241, 1081, 385, 191, 390, 496, 191, 191, 242, 1081, - 191, 191, 243, 1081, 191, 244, 384, 191, 191, 191, - 1081, 191, 1081, 191, 1081, 1081, 191, 241, 386, 385, - 191, 390, 496, 1081, 191, 242, 387, 191, 191, 243, - 388, 191, 244, 389, 191, 497, 191, 251, 191, 252, - 191, 391, 253, 191, 498, 386, 499, 500, 504, 254, - 255, 1081, 1081, 387, 191, 1081, 1081, 388, 191, 191, - 389, 191, 497, 191, 251, 1081, 252, 1081, 391, 253, + 1113, 375, 1113, 315, 379, 241, 370, 362, 193, 372, + 380, 242, 243, 193, 385, 386, 363, 371, 244, 381, + 193, 376, 373, 374, 364, 382, 245, 193, 375, 377, + 246, 379, 378, 247, 1113, 1113, 1113, 380, 387, 1113, + 193, 385, 386, 1113, 501, 244, 381, 193, 376, 383, + 502, 1113, 382, 245, 193, 193, 377, 246, 503, 378, + 247, 254, 384, 255, 504, 387, 256, 1113, 505, 257, + 193, 501, 506, 258, 259, 193, 383, 502, 193, 1113, + 1113, 507, 193, 193, 1113, 503, 508, 1113, 254, 384, + 255, 504, 1113, 256, 193, 505, 257, 193, 1113, 506, - 191, 498, 505, 499, 500, 504, 254, 255, 191, 392, - 393, 191, 191, 191, 1081, 1081, 191, 256, 397, 395, - 191, 257, 191, 394, 258, 259, 396, 414, 191, 505, - 1081, 260, 191, 191, 261, 191, 392, 393, 506, 191, - 191, 191, 191, 1081, 256, 397, 395, 402, 257, 191, - 394, 258, 259, 396, 414, 191, 191, 403, 260, 191, - 191, 261, 1081, 1081, 507, 506, 1081, 191, 191, 191, - 191, 404, 191, 191, 402, 508, 405, 398, 399, 400, - 509, 401, 510, 191, 403, 410, 411, 511, 512, 412, - 191, 507, 191, 191, 191, 1081, 1081, 191, 404, 191, + 258, 259, 193, 509, 513, 193, 390, 193, 507, 391, + 193, 260, 514, 508, 193, 261, 515, 193, 262, 263, + 1113, 193, 193, 516, 392, 264, 1113, 193, 265, 1113, + 509, 513, 393, 390, 193, 1113, 391, 193, 260, 514, + 1113, 193, 261, 515, 193, 262, 263, 193, 517, 193, + 516, 392, 264, 394, 193, 265, 395, 193, 1113, 393, + 396, 1113, 193, 1113, 193, 1113, 1113, 193, 397, 510, + 193, 511, 193, 518, 193, 517, 1113, 193, 1113, 1113, + 394, 1113, 1113, 395, 193, 193, 512, 396, 193, 193, + 193, 193, 398, 399, 193, 397, 510, 193, 511, 193, - 191, 191, 508, 405, 398, 399, 400, 509, 401, 510, - 191, 413, 410, 411, 511, 512, 412, 191, 406, 191, - 191, 191, 191, 407, 191, 415, 191, 1081, 191, 408, - 191, 422, 416, 1081, 191, 513, 409, 191, 413, 1081, - 191, 516, 191, 1081, 191, 406, 191, 423, 191, 191, - 407, 191, 415, 191, 191, 1081, 408, 191, 422, 416, - 191, 191, 513, 409, 517, 191, 191, 191, 516, 191, - 191, 191, 1081, 191, 423, 424, 191, 1081, 518, 425, - 426, 191, 417, 427, 418, 191, 191, 191, 419, 1081, - 191, 517, 191, 191, 519, 420, 191, 191, 191, 421, + 518, 401, 1113, 193, 193, 404, 400, 193, 193, 193, + 519, 193, 193, 512, 402, 193, 193, 193, 193, 398, + 399, 403, 193, 1113, 193, 520, 193, 193, 401, 193, + 193, 1113, 404, 400, 193, 193, 193, 519, 193, 521, + 409, 402, 1113, 193, 522, 525, 526, 1113, 403, 193, + 410, 193, 520, 193, 193, 193, 193, 405, 406, 407, + 193, 408, 527, 193, 193, 528, 521, 409, 193, 193, + 193, 522, 525, 526, 417, 418, 529, 410, 411, 523, + 193, 1113, 193, 412, 405, 406, 407, 193, 408, 527, + 193, 193, 528, 193, 524, 193, 193, 193, 422, 193, - 191, 1081, 424, 191, 191, 518, 425, 426, 428, 417, - 427, 418, 191, 191, 191, 419, 191, 191, 191, 191, - 442, 519, 420, 191, 429, 191, 421, 191, 432, 191, - 430, 191, 191, 431, 191, 428, 191, 1081, 191, 191, - 435, 191, 434, 191, 191, 191, 191, 442, 433, 191, - 191, 429, 191, 440, 441, 432, 191, 430, 191, 191, - 431, 191, 1081, 191, 191, 191, 191, 435, 191, 434, - 191, 191, 191, 443, 1081, 433, 191, 191, 514, 191, - 440, 441, 1081, 1081, 520, 191, 436, 191, 191, 191, - 456, 191, 191, 515, 1081, 191, 437, 191, 191, 191, + 1113, 417, 418, 529, 530, 411, 523, 193, 193, 419, + 412, 413, 531, 193, 193, 532, 414, 193, 1113, 193, + 193, 524, 415, 1113, 193, 422, 193, 420, 423, 416, + 193, 530, 193, 193, 193, 193, 419, 193, 413, 531, + 193, 193, 532, 414, 193, 193, 193, 421, 193, 415, + 193, 193, 533, 193, 420, 423, 416, 193, 193, 193, + 193, 193, 1113, 534, 193, 429, 535, 1113, 536, 1113, + 1113, 1113, 193, 193, 421, 193, 1113, 193, 193, 533, + 193, 424, 193, 425, 537, 193, 193, 426, 538, 430, + 534, 539, 429, 535, 427, 536, 431, 193, 428, 1113, - 443, 438, 439, 521, 444, 514, 445, 191, 446, 191, - 447, 520, 191, 436, 191, 191, 191, 456, 191, 191, - 515, 448, 522, 437, 1081, 191, 1081, 191, 438, 439, - 521, 444, 191, 445, 191, 446, 191, 447, 191, 191, - 449, 191, 191, 1081, 1081, 191, 523, 191, 448, 522, - 450, 451, 524, 452, 191, 191, 191, 1081, 191, 191, - 455, 191, 191, 454, 191, 191, 191, 449, 191, 191, - 453, 457, 191, 523, 191, 191, 191, 450, 451, 524, - 452, 458, 191, 191, 191, 191, 191, 455, 191, 191, - 454, 191, 191, 191, 191, 525, 460, 453, 457, 191, + 193, 193, 193, 193, 540, 193, 193, 193, 424, 193, + 425, 537, 541, 193, 426, 538, 430, 193, 539, 1113, + 432, 427, 193, 431, 193, 428, 193, 193, 193, 193, + 193, 540, 193, 193, 193, 193, 433, 193, 542, 541, + 543, 193, 434, 1113, 193, 544, 193, 432, 1113, 193, + 193, 193, 545, 193, 193, 193, 546, 547, 548, 193, + 193, 435, 193, 433, 193, 542, 193, 543, 193, 434, + 436, 193, 544, 193, 1113, 193, 1113, 193, 193, 545, + 193, 1113, 193, 546, 547, 548, 193, 193, 435, 1113, + 193, 549, 1113, 193, 550, 551, 193, 436, 193, 439, - 191, 1081, 191, 191, 1081, 461, 1081, 459, 458, 462, - 191, 191, 465, 191, 191, 191, 526, 527, 528, 191, - 191, 191, 525, 460, 463, 191, 191, 191, 191, 464, - 191, 467, 461, 466, 459, 191, 462, 191, 1081, 465, - 1081, 191, 191, 526, 527, 528, 191, 191, 191, 1081, - 191, 463, 191, 191, 1081, 191, 464, 191, 467, 468, - 466, 191, 191, 472, 191, 473, 1081, 477, 469, 191, - 191, 529, 1081, 191, 471, 191, 470, 191, 1081, 474, - 1081, 191, 191, 1081, 191, 191, 468, 191, 191, 191, - 472, 191, 473, 475, 477, 469, 191, 191, 529, 191, + 437, 193, 193, 438, 193, 193, 193, 193, 441, 552, + 193, 193, 440, 193, 193, 553, 193, 193, 549, 193, + 1113, 550, 551, 193, 193, 442, 439, 437, 193, 193, + 438, 193, 193, 193, 193, 441, 552, 193, 193, 440, + 193, 193, 553, 193, 193, 1113, 193, 554, 448, 447, + 1113, 193, 442, 193, 556, 193, 193, 555, 557, 193, + 193, 193, 443, 193, 193, 1113, 1113, 193, 193, 1113, + 558, 193, 444, 449, 554, 448, 447, 445, 446, 559, + 193, 556, 193, 193, 555, 557, 193, 193, 193, 443, + 193, 193, 193, 450, 451, 193, 452, 558, 560, 444, - 530, 471, 191, 470, 476, 191, 474, 478, 191, 191, - 191, 191, 191, 1081, 191, 1081, 191, 1081, 480, 191, - 475, 479, 191, 484, 191, 531, 191, 530, 1081, 191, - 191, 476, 191, 490, 478, 191, 191, 191, 481, 485, - 482, 1081, 191, 483, 191, 480, 191, 1081, 479, 191, - 484, 191, 531, 191, 1081, 191, 191, 191, 191, 488, - 490, 191, 191, 191, 1081, 481, 485, 482, 486, 191, - 483, 191, 489, 491, 487, 501, 532, 502, 191, 191, - 191, 191, 191, 191, 1081, 191, 488, 492, 191, 533, - 534, 191, 503, 535, 536, 486, 537, 538, 539, 489, + 449, 561, 1113, 193, 445, 446, 559, 193, 193, 193, + 193, 1113, 193, 1113, 562, 193, 1113, 1113, 193, 193, + 450, 451, 456, 452, 193, 560, 1113, 457, 561, 193, + 193, 1113, 1113, 193, 193, 193, 193, 1113, 193, 193, + 453, 562, 454, 193, 193, 193, 193, 1113, 563, 456, + 1113, 193, 458, 455, 457, 1113, 193, 193, 193, 193, + 193, 459, 1113, 193, 193, 193, 193, 453, 1113, 454, + 193, 193, 460, 193, 193, 563, 564, 193, 462, 458, + 455, 461, 193, 1113, 193, 193, 193, 565, 459, 193, + 193, 193, 193, 193, 193, 193, 463, 193, 566, 460, - 491, 487, 501, 532, 502, 191, 191, 540, 191, 541, - 542, 191, 543, 544, 492, 547, 533, 534, 191, 503, - 535, 536, 545, 537, 538, 539, 548, 549, 550, 551, - 552, 553, 546, 554, 540, 555, 541, 542, 191, 543, - 544, 556, 547, 557, 558, 559, 560, 561, 562, 545, - 563, 564, 565, 548, 549, 550, 551, 552, 553, 546, - 554, 566, 555, 567, 568, 569, 570, 571, 556, 572, - 557, 558, 559, 560, 561, 562, 573, 563, 564, 565, - 574, 575, 576, 577, 578, 579, 580, 581, 566, 582, - 567, 568, 569, 570, 571, 583, 572, 584, 586, 588, + 1113, 193, 193, 564, 193, 462, 1113, 193, 461, 193, + 193, 1113, 193, 1113, 565, 193, 193, 464, 193, 193, + 193, 193, 193, 463, 193, 566, 1113, 467, 193, 193, + 567, 193, 1113, 193, 193, 465, 568, 193, 193, 193, + 193, 466, 193, 193, 464, 193, 193, 193, 193, 468, + 569, 193, 570, 469, 467, 193, 571, 567, 193, 193, + 193, 470, 465, 568, 193, 193, 471, 193, 466, 193, + 193, 193, 193, 193, 472, 193, 468, 569, 193, 570, + 469, 1113, 193, 571, 572, 573, 193, 193, 470, 473, + 485, 193, 193, 471, 1113, 574, 193, 193, 193, 193, - 587, 589, 590, 573, 591, 592, 585, 574, 575, 576, - 577, 578, 579, 580, 581, 593, 582, 594, 597, 595, - 598, 191, 583, 596, 584, 586, 588, 587, 589, 590, - 1081, 591, 592, 585, 599, 191, 600, 191, 705, 191, - 1081, 191, 593, 1081, 594, 597, 595, 598, 191, 602, - 596, 191, 1081, 191, 191, 191, 191, 191, 601, 191, - 1081, 599, 191, 600, 191, 705, 191, 191, 191, 706, - 191, 191, 191, 191, 604, 191, 602, 603, 191, 606, - 191, 191, 191, 191, 191, 601, 191, 191, 191, 1081, - 191, 1081, 191, 605, 191, 191, 706, 191, 191, 191, + 193, 472, 193, 474, 475, 193, 193, 1113, 193, 193, + 193, 572, 573, 476, 193, 193, 473, 485, 478, 193, + 193, 477, 574, 193, 193, 575, 193, 193, 193, 193, + 474, 475, 193, 193, 193, 193, 1113, 193, 479, 576, + 476, 577, 193, 193, 578, 478, 579, 193, 477, 193, + 193, 580, 575, 193, 193, 193, 480, 1113, 193, 482, + 481, 193, 193, 193, 193, 479, 576, 581, 577, 582, + 193, 578, 1113, 579, 1113, 583, 193, 193, 580, 193, + 193, 193, 193, 480, 193, 193, 482, 481, 483, 193, + 193, 193, 584, 193, 581, 193, 582, 585, 586, 484, - 191, 604, 191, 191, 603, 191, 606, 607, 614, 608, - 1081, 1081, 1081, 191, 191, 191, 610, 191, 191, 191, - 605, 611, 191, 191, 609, 191, 612, 617, 613, 191, - 191, 1081, 191, 191, 607, 614, 608, 615, 191, 191, - 191, 191, 1081, 610, 1081, 191, 1081, 191, 611, 191, - 191, 609, 191, 612, 617, 613, 191, 620, 619, 191, - 191, 191, 191, 616, 615, 191, 191, 623, 191, 191, - 1081, 191, 621, 622, 191, 191, 191, 191, 618, 1081, - 1081, 1081, 191, 707, 620, 619, 191, 191, 191, 191, - 616, 191, 191, 627, 623, 191, 191, 191, 191, 621, + 193, 486, 583, 193, 193, 1113, 193, 193, 193, 193, + 1113, 193, 488, 193, 487, 483, 193, 587, 193, 584, + 193, 1113, 193, 193, 585, 586, 484, 193, 486, 588, + 193, 193, 489, 193, 589, 193, 193, 493, 590, 488, + 193, 487, 193, 193, 587, 193, 490, 591, 193, 491, + 193, 492, 193, 193, 1113, 592, 588, 193, 193, 489, + 193, 589, 193, 193, 493, 590, 498, 193, 593, 193, + 193, 598, 193, 490, 591, 193, 491, 494, 492, 193, + 193, 193, 592, 495, 193, 193, 193, 496, 1113, 193, + 193, 193, 1113, 498, 193, 593, 599, 193, 598, 193, - 622, 191, 191, 625, 191, 618, 191, 624, 626, 191, - 707, 629, 191, 191, 191, 1081, 1081, 191, 191, 191, - 627, 191, 191, 628, 191, 1081, 191, 191, 191, 1081, - 625, 191, 191, 191, 624, 626, 1081, 1081, 629, 191, - 191, 630, 191, 191, 191, 635, 631, 191, 191, 632, - 628, 191, 191, 191, 191, 708, 636, 709, 191, 191, - 191, 191, 191, 191, 633, 191, 710, 1081, 630, 191, - 191, 191, 635, 631, 191, 634, 632, 191, 191, 191, - 191, 191, 708, 636, 709, 637, 191, 191, 191, 191, - 191, 633, 191, 710, 638, 711, 191, 191, 191, 191, + 497, 500, 193, 600, 494, 193, 499, 193, 193, 601, + 495, 193, 193, 193, 496, 594, 602, 193, 193, 596, + 193, 597, 603, 599, 595, 193, 604, 497, 500, 193, + 600, 605, 193, 499, 193, 606, 601, 607, 193, 608, + 193, 609, 594, 602, 1113, 717, 596, 193, 597, 603, + 193, 595, 193, 604, 610, 193, 193, 1113, 605, 1113, + 193, 193, 606, 1113, 607, 193, 608, 193, 609, 193, + 193, 193, 717, 1113, 193, 193, 718, 193, 611, 719, + 612, 610, 193, 193, 193, 1113, 193, 193, 193, 720, + 193, 193, 193, 1113, 193, 193, 193, 193, 193, 193, - 712, 713, 634, 639, 191, 191, 191, 191, 191, 643, - 1081, 640, 637, 191, 191, 641, 191, 191, 1081, 191, - 642, 638, 711, 191, 191, 191, 191, 712, 713, 648, - 639, 1081, 191, 191, 191, 191, 643, 191, 640, 191, - 191, 191, 641, 191, 191, 646, 191, 642, 191, 191, - 644, 649, 191, 645, 650, 191, 648, 714, 647, 191, - 191, 191, 191, 651, 191, 715, 191, 191, 191, 191, - 716, 191, 646, 652, 191, 191, 191, 644, 649, 191, - 645, 650, 191, 191, 714, 647, 191, 191, 191, 191, - 651, 656, 715, 191, 655, 191, 191, 716, 191, 191, + 193, 193, 193, 718, 193, 611, 719, 612, 193, 193, + 613, 193, 614, 193, 193, 193, 720, 193, 193, 1113, + 193, 193, 193, 193, 721, 193, 193, 193, 193, 616, + 1113, 193, 1113, 722, 1113, 193, 193, 613, 723, 614, + 193, 193, 193, 615, 193, 193, 193, 193, 1113, 193, + 193, 721, 193, 617, 724, 193, 616, 618, 725, 619, + 722, 193, 193, 726, 727, 723, 193, 193, 728, 1113, + 615, 193, 193, 193, 620, 621, 193, 193, 729, 193, + 617, 724, 193, 193, 618, 725, 619, 730, 193, 193, + 726, 727, 193, 193, 1113, 728, 193, 731, 193, 622, - 652, 191, 654, 191, 653, 1081, 191, 657, 191, 1081, - 191, 191, 717, 191, 1081, 191, 191, 191, 656, 660, - 191, 655, 1081, 191, 658, 191, 191, 191, 1081, 654, - 191, 653, 659, 191, 657, 191, 191, 191, 191, 717, - 191, 191, 663, 661, 191, 191, 660, 191, 1081, 662, - 191, 658, 191, 191, 191, 191, 191, 191, 191, 659, - 191, 191, 1081, 191, 191, 665, 191, 191, 191, 663, - 661, 664, 191, 1081, 191, 191, 662, 191, 191, 666, - 191, 667, 191, 191, 191, 191, 191, 191, 191, 668, - 669, 670, 665, 191, 191, 191, 1081, 674, 664, 191, + 623, 620, 621, 193, 193, 729, 193, 193, 732, 193, + 193, 624, 193, 193, 730, 1113, 193, 626, 1113, 193, + 1113, 193, 628, 193, 731, 193, 622, 623, 193, 1113, + 193, 193, 193, 625, 193, 732, 193, 193, 624, 193, + 193, 193, 193, 193, 626, 627, 193, 193, 193, 628, + 193, 193, 193, 733, 1113, 193, 631, 629, 193, 193, + 625, 734, 630, 193, 193, 193, 193, 735, 193, 193, + 193, 632, 627, 193, 193, 1113, 193, 193, 193, 193, + 733, 193, 736, 631, 629, 633, 193, 193, 734, 630, + 634, 193, 193, 193, 735, 737, 738, 193, 632, 1113, - 191, 191, 191, 191, 191, 191, 666, 673, 667, 191, - 191, 672, 671, 191, 191, 191, 668, 669, 670, 191, - 191, 191, 191, 191, 674, 191, 191, 191, 191, 191, - 191, 718, 676, 678, 673, 719, 191, 191, 672, 671, - 675, 680, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 677, 191, 191, 191, 191, 191, 1081, 718, 676, - 678, 191, 719, 191, 191, 679, 191, 675, 680, 682, - 191, 191, 191, 1081, 191, 191, 191, 1081, 677, 191, - 191, 191, 191, 688, 681, 191, 191, 191, 191, 720, - 191, 191, 679, 191, 683, 191, 682, 191, 685, 191, + 739, 636, 193, 193, 193, 193, 635, 193, 193, 736, + 193, 193, 633, 193, 193, 193, 740, 634, 193, 193, + 741, 638, 737, 738, 193, 193, 637, 739, 636, 193, + 193, 193, 193, 635, 193, 193, 193, 193, 193, 742, + 193, 193, 193, 740, 640, 193, 193, 741, 638, 743, + 639, 193, 193, 637, 193, 744, 641, 193, 193, 193, + 745, 746, 193, 193, 193, 1113, 742, 193, 193, 193, + 747, 640, 193, 193, 193, 193, 743, 639, 193, 1113, + 1113, 193, 744, 641, 748, 193, 193, 745, 746, 642, + 193, 193, 193, 193, 749, 193, 193, 747, 1113, 643, - 686, 191, 191, 191, 684, 191, 191, 191, 1081, 191, - 688, 681, 191, 191, 191, 191, 720, 191, 687, 191, - 1081, 683, 191, 191, 191, 685, 191, 686, 689, 191, - 191, 684, 191, 692, 191, 693, 191, 1081, 690, 191, - 1081, 191, 191, 191, 191, 687, 191, 691, 695, 721, - 191, 694, 191, 1081, 1081, 689, 191, 1081, 191, 722, - 692, 191, 693, 723, 191, 690, 191, 191, 191, 1081, - 191, 724, 191, 696, 691, 695, 721, 191, 694, 191, - 698, 191, 191, 697, 191, 191, 722, 191, 191, 725, - 723, 191, 1081, 1081, 191, 699, 700, 191, 724, 191, + 193, 193, 193, 1113, 750, 193, 644, 193, 193, 193, + 646, 748, 193, 193, 1113, 751, 642, 193, 1113, 193, + 193, 749, 193, 645, 193, 193, 643, 1113, 1113, 193, + 193, 750, 752, 644, 193, 193, 193, 646, 1113, 193, + 193, 647, 751, 1113, 753, 193, 193, 193, 754, 755, + 645, 193, 193, 1113, 648, 649, 193, 193, 756, 752, + 193, 193, 193, 193, 757, 193, 193, 193, 647, 1113, + 650, 753, 193, 193, 193, 754, 755, 651, 193, 1113, + 193, 648, 649, 193, 1113, 756, 193, 193, 193, 193, + 193, 757, 193, 193, 193, 193, 193, 650, 1113, 653, - 696, 191, 191, 726, 191, 191, 191, 698, 191, 191, - 697, 191, 727, 728, 191, 701, 725, 191, 704, 702, - 703, 729, 699, 700, 191, 191, 191, 730, 191, 191, - 726, 731, 191, 191, 732, 733, 734, 191, 735, 727, - 728, 736, 701, 737, 191, 704, 702, 703, 729, 738, - 739, 740, 191, 191, 730, 741, 742, 743, 731, 746, - 744, 732, 733, 734, 191, 735, 747, 748, 736, 749, - 737, 745, 750, 751, 752, 753, 738, 739, 740, 754, - 755, 756, 741, 742, 743, 757, 746, 744, 758, 759, - 760, 761, 762, 747, 748, 763, 749, 764, 745, 750, + 193, 193, 652, 1113, 651, 193, 193, 193, 1113, 1113, + 193, 193, 760, 193, 1113, 193, 193, 193, 1113, 654, + 761, 193, 193, 193, 1113, 193, 653, 193, 193, 652, + 193, 657, 655, 193, 656, 193, 193, 193, 193, 760, + 193, 193, 193, 193, 193, 193, 654, 761, 193, 762, + 193, 659, 193, 763, 660, 764, 765, 193, 657, 655, + 658, 656, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 758, 193, 661, 762, 193, 659, 662, + 763, 660, 764, 765, 759, 766, 1113, 658, 193, 663, + 193, 767, 193, 193, 193, 193, 193, 193, 193, 193, - 751, 752, 753, 765, 766, 767, 754, 755, 756, 768, - 769, 770, 757, 771, 772, 758, 759, 760, 761, 762, - 773, 774, 763, 775, 764, 776, 777, 778, 779, 780, - 765, 766, 767, 781, 782, 783, 768, 769, 770, 191, - 771, 772, 1081, 191, 191, 191, 1081, 773, 774, 790, - 775, 1081, 776, 777, 778, 779, 780, 784, 785, 786, - 781, 782, 783, 787, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 791, 1081, 790, 789, 191, 191, - 788, 1081, 191, 191, 784, 785, 786, 191, 191, 1081, - 787, 191, 191, 191, 191, 191, 191, 1081, 191, 191, + 758, 193, 661, 193, 664, 193, 662, 1113, 193, 193, + 768, 759, 766, 193, 665, 193, 663, 193, 767, 667, + 193, 193, 193, 193, 193, 193, 193, 668, 666, 193, + 193, 664, 193, 193, 193, 193, 193, 768, 193, 193, + 193, 665, 1113, 193, 769, 1113, 667, 193, 669, 193, + 193, 193, 193, 670, 668, 666, 193, 193, 1113, 1113, + 193, 193, 770, 771, 193, 193, 193, 193, 772, 193, + 193, 769, 193, 773, 1113, 669, 193, 193, 774, 1113, + 670, 775, 674, 193, 193, 671, 193, 193, 672, 770, + 771, 193, 1113, 776, 193, 772, 193, 777, 193, 193, - 191, 791, 191, 191, 789, 191, 191, 788, 191, 191, - 191, 191, 191, 191, 191, 191, 792, 793, 1081, 1081, - 191, 191, 1081, 1081, 794, 191, 191, 1081, 191, 191, - 191, 191, 191, 191, 191, 191, 795, 191, 191, 191, - 191, 191, 191, 792, 793, 191, 801, 863, 191, 797, - 191, 794, 798, 799, 191, 191, 796, 191, 191, 191, - 191, 191, 191, 795, 191, 191, 1081, 191, 191, 191, - 191, 1081, 191, 801, 863, 191, 797, 191, 191, 798, - 799, 191, 800, 796, 191, 805, 1081, 191, 802, 191, - 191, 803, 191, 191, 191, 191, 191, 191, 191, 191, + 773, 193, 193, 193, 193, 774, 193, 1113, 775, 674, + 193, 193, 671, 193, 193, 672, 778, 193, 673, 193, + 776, 679, 193, 1113, 777, 193, 193, 675, 193, 193, + 193, 193, 779, 193, 193, 193, 193, 780, 193, 193, + 1113, 193, 676, 778, 193, 673, 193, 781, 679, 193, + 193, 782, 193, 193, 675, 193, 193, 783, 193, 779, + 680, 193, 193, 193, 780, 677, 193, 193, 193, 676, + 678, 193, 193, 1113, 781, 193, 193, 193, 782, 193, + 193, 681, 193, 193, 783, 193, 193, 680, 1113, 1113, + 784, 1113, 677, 1113, 193, 682, 785, 678, 193, 193, - 804, 864, 191, 1081, 865, 191, 866, 1081, 1081, 800, - 191, 1081, 805, 191, 191, 802, 191, 191, 803, 191, - 191, 191, 191, 191, 191, 191, 191, 804, 864, 191, - 810, 865, 806, 866, 191, 807, 1081, 191, 191, 867, - 191, 191, 1081, 191, 191, 808, 191, 812, 191, 191, - 191, 191, 1081, 809, 191, 191, 191, 810, 191, 806, - 811, 191, 807, 191, 191, 191, 867, 191, 191, 814, - 191, 191, 808, 191, 812, 191, 191, 191, 813, 191, - 809, 191, 191, 191, 191, 191, 1081, 811, 815, 868, - 191, 191, 191, 191, 191, 1081, 814, 191, 191, 191, + 193, 193, 193, 193, 193, 193, 193, 193, 681, 786, + 193, 787, 193, 193, 193, 683, 685, 784, 684, 193, + 193, 1113, 682, 785, 193, 193, 1113, 193, 193, 686, + 193, 193, 193, 193, 193, 193, 786, 193, 787, 689, + 193, 193, 683, 685, 788, 684, 193, 193, 193, 789, + 193, 193, 193, 687, 193, 688, 686, 193, 691, 193, + 790, 193, 193, 193, 193, 193, 689, 193, 193, 791, + 193, 788, 1113, 193, 690, 193, 789, 193, 193, 193, + 687, 193, 688, 193, 193, 691, 193, 790, 792, 193, + 193, 193, 193, 793, 794, 193, 791, 193, 193, 193, - 191, 191, 191, 191, 191, 813, 191, 191, 1081, 816, - 191, 191, 191, 817, 869, 815, 868, 818, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 1081, - 191, 191, 1081, 191, 191, 819, 816, 191, 191, 191, - 817, 869, 191, 191, 818, 191, 191, 1081, 191, 191, - 191, 191, 820, 191, 191, 191, 821, 823, 191, 822, - 191, 191, 819, 191, 191, 191, 191, 191, 824, 191, - 191, 191, 191, 191, 825, 191, 191, 1081, 1081, 820, - 191, 191, 191, 821, 823, 191, 822, 191, 191, 191, - 191, 191, 191, 191, 191, 824, 191, 191, 191, 191, + 193, 690, 193, 193, 193, 193, 193, 692, 193, 193, + 193, 193, 1113, 693, 694, 792, 193, 193, 193, 193, + 793, 794, 193, 695, 795, 193, 193, 796, 193, 193, + 193, 193, 193, 698, 692, 193, 193, 797, 193, 696, + 693, 694, 193, 798, 193, 193, 193, 193, 700, 193, + 695, 795, 193, 697, 796, 193, 193, 193, 193, 193, + 698, 881, 193, 193, 797, 193, 696, 699, 193, 193, + 798, 193, 193, 193, 193, 700, 193, 882, 193, 193, + 697, 701, 702, 193, 193, 193, 1113, 193, 881, 193, + 193, 703, 193, 883, 699, 193, 884, 193, 193, 193, - 191, 825, 191, 191, 826, 828, 1081, 827, 191, 191, - 1081, 1081, 1081, 191, 191, 191, 191, 191, 191, 191, - 191, 1081, 870, 191, 191, 191, 832, 191, 191, 829, - 830, 826, 828, 191, 827, 191, 191, 833, 191, 191, - 191, 831, 191, 834, 191, 1081, 1081, 191, 191, 870, - 1081, 871, 191, 832, 191, 191, 829, 830, 191, 191, - 191, 872, 191, 191, 833, 191, 191, 835, 831, 191, - 834, 191, 191, 838, 191, 191, 1081, 191, 871, 837, - 1081, 191, 836, 839, 873, 191, 191, 191, 872, 191, - 191, 191, 191, 1081, 835, 191, 191, 191, 191, 191, + 193, 193, 193, 193, 882, 193, 707, 193, 701, 702, + 193, 704, 885, 705, 193, 886, 193, 706, 703, 193, + 883, 193, 193, 884, 193, 193, 193, 193, 193, 193, + 193, 887, 888, 707, 193, 708, 889, 193, 704, 885, + 705, 193, 886, 193, 706, 193, 193, 1113, 193, 193, + 890, 891, 193, 193, 193, 193, 193, 193, 887, 888, + 193, 709, 708, 889, 710, 193, 193, 892, 193, 893, + 712, 193, 193, 193, 711, 193, 193, 890, 891, 894, + 1113, 193, 193, 193, 1113, 1113, 193, 193, 709, 895, + 896, 710, 193, 193, 892, 897, 893, 712, 193, 193, - 838, 191, 1081, 840, 191, 191, 837, 191, 191, 836, - 839, 873, 1081, 1081, 191, 191, 191, 874, 191, 191, - 842, 841, 191, 843, 191, 191, 191, 1081, 191, 191, - 840, 191, 191, 1081, 191, 191, 1081, 844, 1081, 846, - 845, 191, 191, 191, 874, 847, 191, 842, 841, 191, - 843, 191, 191, 191, 849, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 844, 191, 846, 845, 191, 850, - 191, 191, 847, 191, 191, 848, 191, 191, 191, 191, - 191, 849, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 853, 875, 191, 850, 851, 191, 852, + 898, 711, 193, 193, 899, 193, 894, 713, 193, 193, + 900, 714, 715, 193, 193, 193, 895, 896, 716, 1113, + 193, 1113, 897, 901, 193, 193, 193, 898, 799, 193, + 193, 899, 193, 193, 713, 193, 193, 900, 714, 715, + 1113, 193, 193, 193, 193, 716, 800, 193, 193, 902, + 901, 193, 193, 193, 193, 799, 193, 193, 193, 193, + 193, 1113, 193, 801, 802, 1113, 1113, 803, 193, 193, + 193, 193, 805, 800, 193, 193, 902, 804, 806, 1113, + 193, 193, 193, 193, 903, 193, 193, 193, 193, 1113, + 801, 802, 193, 193, 803, 193, 193, 193, 193, 805, - 1081, 191, 848, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 859, 191, 191, 1081, 854, 191, 856, - 853, 875, 191, 191, 851, 876, 852, 855, 191, 857, - 191, 191, 191, 191, 191, 191, 1081, 191, 191, 858, - 859, 191, 191, 191, 854, 191, 856, 191, 860, 877, - 191, 191, 876, 191, 855, 191, 857, 191, 191, 862, - 191, 191, 191, 191, 191, 191, 858, 191, 878, 861, - 191, 191, 191, 191, 191, 860, 877, 879, 191, 191, - 191, 880, 191, 191, 191, 881, 862, 882, 883, 191, - 191, 884, 191, 885, 191, 878, 861, 886, 191, 887, + 1113, 193, 193, 807, 804, 806, 193, 193, 193, 193, + 193, 903, 904, 1113, 193, 193, 193, 905, 1113, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 807, 193, 193, 193, 193, 193, 193, 1113, 906, 904, + 808, 193, 193, 193, 905, 809, 907, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 810, 906, 193, 808, 193, 193, + 193, 193, 809, 907, 193, 811, 908, 909, 193, 193, + 193, 193, 1113, 193, 193, 813, 910, 193, 193, 193, + 193, 810, 1113, 193, 1113, 812, 193, 193, 193, 193, - 191, 888, 889, 890, 879, 891, 191, 892, 880, 191, - 191, 893, 881, 894, 882, 883, 895, 896, 884, 897, - 885, 898, 899, 900, 886, 901, 887, 902, 888, 889, - 890, 903, 891, 904, 892, 905, 906, 907, 893, 908, - 894, 909, 910, 895, 896, 911, 897, 912, 898, 899, - 900, 913, 901, 914, 902, 915, 916, 917, 903, 918, - 904, 191, 905, 906, 907, 191, 908, 191, 909, 910, - 191, 1081, 911, 920, 912, 191, 921, 1081, 913, 975, - 914, 191, 915, 916, 917, 191, 918, 191, 191, 191, - 191, 919, 191, 191, 191, 191, 191, 191, 922, 191, + 193, 193, 811, 908, 909, 911, 814, 193, 193, 193, + 912, 1113, 813, 910, 193, 193, 815, 193, 1113, 193, + 193, 817, 812, 193, 816, 193, 193, 193, 193, 193, + 1113, 913, 911, 814, 193, 914, 193, 912, 820, 915, + 193, 193, 193, 815, 193, 193, 193, 193, 817, 193, + 916, 816, 193, 819, 193, 193, 193, 818, 913, 193, + 917, 193, 914, 918, 193, 820, 915, 193, 193, 919, + 193, 193, 193, 920, 193, 193, 193, 916, 193, 921, + 819, 193, 193, 193, 818, 821, 193, 917, 193, 193, + 918, 193, 922, 193, 193, 193, 919, 193, 193, 1113, - 920, 191, 191, 921, 924, 976, 975, 1081, 191, 191, - 923, 977, 191, 926, 191, 191, 191, 191, 919, 191, - 191, 191, 191, 191, 191, 922, 191, 1081, 191, 930, - 191, 924, 976, 191, 925, 191, 191, 923, 977, 191, - 926, 1081, 191, 927, 191, 191, 191, 191, 191, 191, - 191, 191, 1081, 978, 929, 928, 930, 191, 191, 191, - 191, 925, 191, 934, 191, 191, 191, 191, 931, 935, - 927, 191, 191, 932, 191, 1081, 191, 191, 191, 191, - 978, 929, 928, 191, 191, 191, 191, 191, 933, 191, - 934, 191, 191, 191, 191, 931, 935, 191, 191, 191, + 920, 193, 193, 193, 1113, 193, 921, 923, 924, 925, + 193, 193, 821, 193, 822, 193, 193, 193, 193, 922, + 193, 193, 823, 193, 926, 193, 193, 927, 193, 824, + 193, 193, 825, 193, 923, 924, 925, 193, 193, 1113, + 193, 822, 826, 827, 193, 193, 193, 193, 828, 823, + 193, 926, 928, 193, 927, 193, 824, 193, 193, 825, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 826, + 827, 193, 193, 193, 193, 828, 929, 193, 830, 928, + 829, 193, 193, 1113, 193, 193, 193, 930, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 932, 939, 936, 191, 1081, 191, 191, 191, 937, 1081, - 191, 191, 938, 191, 191, 933, 191, 191, 191, 940, - 191, 191, 191, 191, 191, 191, 191, 979, 939, 936, - 191, 191, 191, 191, 191, 937, 191, 980, 942, 938, - 191, 191, 191, 1081, 191, 191, 940, 941, 191, 191, - 191, 191, 191, 191, 979, 191, 191, 943, 191, 191, - 191, 191, 981, 191, 980, 942, 191, 191, 191, 191, - 191, 946, 1081, 1081, 941, 191, 944, 1081, 191, 191, - 191, 191, 191, 191, 943, 945, 191, 191, 191, 981, - 191, 191, 1081, 191, 191, 191, 191, 191, 946, 191, + 193, 193, 193, 929, 193, 830, 831, 829, 193, 193, + 193, 832, 193, 193, 930, 193, 193, 1113, 193, 1113, + 193, 931, 1113, 193, 193, 193, 193, 193, 193, 193, + 193, 833, 1113, 831, 193, 834, 193, 193, 832, 932, + 193, 193, 193, 193, 835, 933, 193, 193, 931, 193, + 934, 1113, 193, 193, 193, 193, 1113, 193, 833, 193, + 193, 193, 834, 193, 193, 193, 932, 193, 193, 193, + 935, 835, 933, 193, 936, 937, 193, 934, 836, 1113, + 193, 193, 193, 193, 193, 193, 193, 193, 837, 193, + 1113, 193, 193, 193, 1113, 1113, 193, 935, 193, 938, - 191, 191, 191, 944, 191, 949, 948, 1081, 191, 947, - 191, 1081, 945, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 949, 948, 950, 191, 947, 191, 191, 191, - 953, 1081, 191, 191, 952, 1081, 191, 191, 191, 191, - 191, 191, 191, 951, 1081, 191, 191, 191, 191, 191, - 191, 950, 191, 956, 1081, 191, 191, 953, 191, 191, - 191, 952, 191, 957, 982, 1081, 191, 191, 191, 1081, - 951, 954, 191, 191, 191, 191, 191, 191, 191, 191, - 956, 955, 191, 960, 191, 191, 191, 191, 191, 191, + 997, 936, 937, 193, 193, 836, 838, 193, 193, 1113, + 193, 193, 193, 193, 1113, 837, 193, 839, 998, 193, + 193, 193, 193, 840, 193, 193, 938, 997, 1113, 842, + 193, 193, 193, 838, 841, 193, 193, 193, 193, 1113, + 193, 193, 193, 1113, 839, 998, 193, 193, 193, 193, + 840, 193, 193, 193, 1113, 193, 842, 193, 193, 193, + 999, 841, 1000, 193, 193, 193, 193, 1113, 193, 193, + 193, 1001, 843, 1002, 193, 193, 193, 193, 1003, 193, + 193, 193, 193, 844, 193, 193, 193, 999, 1113, 1000, + 1113, 193, 193, 193, 845, 1004, 193, 193, 1001, 843, - 957, 982, 958, 959, 191, 191, 191, 191, 954, 1081, - 191, 191, 983, 984, 191, 191, 191, 191, 955, 191, - 960, 191, 962, 191, 963, 191, 191, 191, 191, 958, - 959, 191, 961, 191, 191, 1081, 969, 191, 191, 983, - 984, 191, 191, 191, 191, 1081, 1081, 191, 191, 962, - 191, 963, 964, 191, 191, 191, 191, 966, 191, 961, - 965, 985, 191, 969, 191, 191, 971, 191, 967, 191, - 191, 191, 191, 968, 191, 191, 191, 191, 973, 964, - 970, 191, 191, 191, 966, 191, 191, 965, 985, 191, - 972, 191, 191, 971, 191, 967, 191, 191, 191, 191, + 1002, 1113, 193, 193, 193, 1003, 1005, 193, 193, 193, + 844, 193, 193, 193, 193, 193, 1006, 193, 193, 193, + 848, 845, 1004, 193, 1113, 846, 847, 1113, 849, 1007, + 193, 193, 193, 1005, 193, 193, 193, 193, 193, 193, + 1113, 193, 193, 1006, 193, 193, 850, 848, 193, 1008, + 1009, 851, 846, 847, 193, 849, 1007, 193, 193, 193, + 193, 1010, 193, 193, 193, 193, 193, 852, 193, 193, + 1113, 193, 193, 850, 193, 193, 1008, 1009, 851, 1113, + 1011, 193, 1012, 1113, 193, 1013, 1014, 193, 1010, 1015, + 193, 1016, 193, 193, 852, 193, 193, 853, 193, 193, - 968, 191, 191, 191, 191, 973, 974, 970, 191, 191, - 191, 191, 986, 191, 987, 988, 989, 972, 191, 191, - 990, 991, 992, 191, 191, 993, 994, 995, 191, 191, - 191, 191, 996, 974, 997, 998, 999, 191, 191, 986, - 1000, 987, 988, 989, 1001, 1002, 1003, 990, 991, 992, - 1004, 1081, 993, 994, 995, 1005, 191, 191, 191, 996, - 191, 997, 998, 999, 1007, 191, 191, 1000, 191, 1006, - 191, 1001, 1002, 1003, 191, 191, 191, 1004, 1010, 1008, - 191, 1009, 1005, 191, 191, 191, 191, 191, 191, 191, - 191, 1007, 191, 191, 191, 191, 1006, 191, 1011, 191, + 193, 193, 193, 1113, 193, 1017, 855, 1011, 854, 1012, + 193, 193, 1013, 1014, 1113, 193, 1015, 193, 1016, 856, + 193, 1113, 193, 193, 853, 193, 193, 193, 1113, 193, + 193, 193, 1017, 855, 1113, 854, 1018, 193, 193, 1113, + 193, 193, 193, 193, 193, 1019, 856, 193, 857, 193, + 193, 193, 193, 1020, 858, 193, 193, 193, 1113, 1113, + 193, 193, 1021, 1018, 1113, 193, 859, 193, 193, 1113, + 193, 193, 1019, 860, 1113, 857, 193, 193, 193, 1113, + 1020, 858, 193, 193, 1113, 861, 193, 193, 193, 1021, + 1022, 193, 193, 859, 193, 862, 193, 193, 193, 1113, - 191, 191, 191, 191, 1012, 1010, 1008, 191, 1009, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 1014, 191, 191, 1011, 191, 191, 1015, 1013, - 191, 1012, 191, 191, 191, 1081, 191, 191, 191, 1081, - 1081, 191, 191, 191, 191, 191, 191, 191, 191, 1014, - 191, 191, 191, 191, 191, 1015, 1013, 191, 191, 191, - 191, 191, 191, 1016, 191, 191, 191, 191, 191, 191, - 191, 191, 1019, 1017, 191, 191, 1081, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 1016, 191, 191, 191, 191, 191, 1018, 191, 1081, 1019, + 860, 193, 1023, 193, 193, 1024, 193, 1113, 863, 193, + 193, 865, 861, 193, 193, 1113, 1025, 1022, 193, 193, + 1113, 193, 862, 193, 193, 193, 193, 193, 193, 1023, + 193, 193, 1024, 193, 864, 863, 193, 193, 865, 1113, + 193, 193, 193, 1025, 866, 1026, 1027, 193, 867, 1113, + 193, 1028, 193, 193, 193, 193, 1061, 193, 193, 1113, + 193, 864, 1062, 193, 193, 193, 193, 193, 193, 193, + 193, 866, 1026, 1027, 193, 867, 868, 193, 1028, 193, + 1063, 193, 193, 1061, 193, 193, 193, 193, 1113, 1062, + 193, 193, 193, 193, 1113, 193, 1064, 193, 1113, 869, - 1017, 191, 191, 191, 191, 191, 191, 191, 1021, 191, - 191, 191, 191, 191, 191, 191, 1023, 191, 191, 191, - 191, 1081, 1022, 1018, 191, 1020, 191, 191, 1081, 191, - 191, 191, 191, 191, 191, 1021, 191, 1024, 191, 191, - 191, 1081, 191, 1023, 191, 191, 1025, 191, 191, 1022, - 1081, 191, 1020, 191, 191, 1026, 1027, 191, 191, 191, - 191, 191, 191, 191, 1024, 191, 191, 191, 191, 191, - 1029, 191, 191, 1025, 191, 191, 1081, 191, 191, 1028, - 191, 191, 1026, 1027, 191, 1035, 191, 191, 191, 191, - 1081, 191, 191, 191, 191, 191, 1030, 1029, 191, 191, + 193, 193, 193, 868, 1065, 193, 193, 1063, 193, 1066, + 193, 193, 193, 193, 1113, 870, 193, 193, 871, 872, + 193, 193, 193, 1064, 1113, 193, 869, 193, 193, 193, + 193, 1065, 193, 1067, 1113, 193, 1066, 193, 193, 1113, + 193, 193, 870, 193, 193, 871, 872, 193, 193, 193, + 1113, 874, 193, 193, 873, 193, 875, 193, 193, 1068, + 1067, 193, 193, 1113, 193, 193, 876, 193, 193, 1069, + 193, 1113, 877, 1070, 193, 193, 1071, 878, 874, 193, + 193, 873, 193, 875, 193, 193, 1068, 193, 193, 193, + 193, 193, 193, 876, 193, 1113, 1069, 193, 193, 877, - 191, 191, 191, 1031, 191, 191, 1028, 191, 191, 1081, - 1036, 191, 1035, 191, 191, 191, 1081, 1032, 191, 191, - 191, 191, 191, 1030, 1037, 191, 191, 191, 1038, 191, - 1031, 191, 191, 1039, 191, 191, 191, 1036, 191, 1033, - 1040, 191, 191, 1034, 1032, 1041, 191, 191, 1042, 191, - 1043, 1037, 191, 191, 1044, 1038, 191, 1045, 191, 1046, - 1039, 191, 191, 191, 1047, 191, 1033, 1040, 191, 191, - 1034, 1081, 1041, 191, 191, 1042, 1049, 1043, 191, 1048, - 191, 1044, 191, 191, 1045, 191, 1046, 1081, 191, 191, - 1050, 1047, 191, 191, 191, 191, 191, 1081, 191, 191, + 1070, 193, 193, 1071, 878, 193, 193, 193, 1113, 880, + 193, 193, 1072, 193, 193, 193, 193, 193, 193, 193, + 1073, 193, 193, 879, 193, 193, 193, 193, 193, 193, + 193, 1074, 193, 1075, 193, 193, 880, 193, 1113, 1072, + 193, 193, 193, 193, 193, 193, 193, 1073, 193, 193, + 879, 193, 193, 193, 193, 193, 193, 193, 1074, 193, + 1075, 193, 193, 940, 193, 193, 1091, 193, 193, 941, + 193, 193, 193, 193, 1113, 193, 193, 1113, 193, 193, + 193, 193, 939, 193, 193, 193, 193, 1092, 193, 193, + 940, 193, 193, 1091, 193, 1113, 941, 1113, 193, 193, - 191, 191, 191, 1049, 191, 191, 1048, 191, 1051, 191, - 191, 1081, 191, 191, 191, 191, 191, 1050, 191, 191, - 191, 191, 191, 1081, 191, 191, 191, 191, 1052, 191, - 191, 191, 1054, 191, 191, 1051, 1081, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 1056, 1052, 1053, 191, 191, 1054, - 191, 191, 1055, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 1056, 191, 1053, 1058, 191, 1057, 1060, 191, 1055, - 191, 191, 191, 191, 191, 191, 191, 1059, 191, 191, + 1093, 942, 193, 193, 193, 193, 193, 193, 193, 939, + 193, 193, 193, 193, 1092, 943, 193, 193, 193, 944, + 1113, 193, 193, 946, 193, 193, 193, 1093, 942, 193, + 1113, 193, 1113, 193, 1094, 1113, 1095, 193, 193, 193, + 193, 1113, 943, 193, 193, 193, 944, 945, 193, 193, + 946, 193, 193, 193, 193, 1113, 193, 193, 193, 193, + 947, 1094, 193, 1095, 193, 193, 193, 1096, 948, 949, + 193, 193, 1097, 193, 945, 1105, 193, 193, 193, 193, + 1113, 193, 193, 193, 193, 193, 193, 947, 1106, 193, + 1113, 950, 193, 193, 1096, 948, 949, 951, 193, 1097, - 191, 1061, 191, 191, 1062, 191, 1063, 191, 191, 191, - 1064, 1058, 1065, 1057, 1060, 191, 1066, 1081, 191, 191, - 191, 191, 1073, 191, 1059, 191, 191, 191, 1061, 191, - 191, 1062, 191, 1063, 191, 191, 191, 1064, 191, 1065, - 191, 191, 1067, 1066, 191, 191, 191, 191, 191, 1073, - 191, 1068, 191, 191, 191, 1081, 191, 191, 191, 191, - 191, 191, 191, 191, 1070, 191, 191, 191, 191, 1067, - 1072, 191, 1071, 191, 191, 1069, 191, 191, 1068, 191, - 1074, 191, 191, 191, 1075, 191, 191, 191, 191, 191, - 1076, 1070, 191, 191, 1079, 191, 191, 1072, 191, 1071, + 193, 193, 1105, 193, 193, 193, 193, 193, 193, 193, + 1113, 193, 193, 193, 1113, 1106, 952, 193, 950, 193, + 193, 193, 1107, 1113, 951, 1111, 953, 954, 193, 1113, + 955, 193, 193, 193, 193, 193, 1113, 193, 193, 193, + 193, 193, 193, 952, 193, 193, 956, 193, 193, 1107, + 193, 193, 1111, 953, 954, 1113, 957, 955, 193, 193, + 1113, 193, 1113, 1113, 193, 193, 193, 1113, 193, 193, + 959, 1113, 193, 956, 193, 193, 193, 193, 193, 958, + 193, 193, 960, 957, 193, 193, 193, 1113, 193, 1113, + 193, 193, 193, 193, 1113, 193, 193, 959, 1113, 193, - 191, 1081, 1069, 191, 191, 1081, 191, 1074, 191, 191, - 191, 1075, 191, 191, 1077, 191, 1078, 1076, 191, 191, - 191, 1079, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 1081, 191, 1081, 1081, 1081, 191, 1080, 191, - 1081, 1077, 191, 1078, 1081, 191, 1081, 191, 191, 191, - 191, 191, 1081, 191, 1081, 191, 191, 191, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1080, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 191, 191, 191, 46, 46, - 46, 46, 46, 88, 1081, 1081, 88, 88, 177, 177, - 177, 1081, 177, 179, 1081, 179, 179, 179, 182, 1081, + 193, 1113, 193, 193, 193, 1113, 958, 193, 193, 960, + 193, 193, 193, 193, 193, 961, 1113, 193, 193, 1113, + 193, 962, 193, 193, 1113, 193, 193, 193, 1113, 193, + 193, 193, 1113, 1113, 193, 963, 1113, 193, 193, 193, + 964, 193, 961, 1113, 1113, 1113, 1113, 193, 962, 193, + 1113, 1113, 193, 193, 193, 193, 193, 193, 193, 193, + 1113, 193, 963, 193, 193, 193, 193, 964, 1113, 193, + 965, 1113, 193, 193, 967, 193, 193, 1113, 193, 1113, + 193, 193, 193, 193, 1113, 193, 193, 193, 966, 193, + 193, 193, 193, 193, 193, 1113, 193, 965, 193, 193, - 182, 182, 182, 191, 1081, 191, 191, 191, 7, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081 + 193, 967, 193, 1113, 1113, 193, 1113, 193, 193, 1113, + 193, 193, 968, 193, 193, 966, 193, 193, 193, 193, + 193, 193, 193, 193, 969, 193, 193, 193, 193, 1113, + 1113, 193, 193, 1113, 193, 193, 1113, 193, 193, 968, + 193, 193, 970, 1113, 193, 193, 1113, 1113, 1113, 193, + 193, 969, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 1113, 193, 1113, 971, 193, 193, 970, + 193, 193, 193, 1113, 972, 973, 1113, 1113, 1113, 193, + 193, 1113, 1113, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 1113, 971, 193, 193, 193, 193, 193, 193, + + 1113, 972, 973, 1113, 974, 1113, 1113, 193, 1113, 1113, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 1113, 193, 193, 193, 1113, 1113, 975, 1113, 193, + 977, 974, 1113, 976, 193, 193, 1113, 193, 193, 1113, + 193, 193, 193, 193, 193, 193, 193, 193, 978, 1113, + 193, 193, 1113, 193, 975, 1113, 193, 977, 1113, 193, + 976, 193, 193, 1113, 193, 979, 980, 193, 193, 193, + 193, 193, 193, 193, 1113, 978, 1113, 193, 981, 193, + 193, 1113, 1113, 193, 193, 193, 193, 1113, 1113, 193, + 193, 193, 979, 980, 193, 193, 193, 193, 982, 193, + + 193, 1113, 1113, 193, 193, 981, 193, 1113, 983, 1113, + 193, 193, 193, 984, 193, 1113, 193, 193, 985, 193, + 1113, 193, 193, 193, 193, 982, 193, 1113, 1113, 193, + 193, 193, 1113, 193, 193, 983, 987, 193, 193, 193, + 984, 193, 193, 193, 1113, 985, 193, 986, 193, 193, + 193, 193, 1113, 193, 988, 1113, 193, 1113, 989, 193, + 193, 193, 193, 987, 193, 193, 193, 1113, 990, 193, + 193, 1113, 193, 193, 986, 193, 991, 193, 1113, 1113, + 193, 988, 193, 1113, 1113, 989, 193, 193, 193, 193, + 1113, 193, 193, 193, 1113, 990, 193, 1113, 1113, 193, + + 193, 992, 193, 991, 193, 1113, 993, 1113, 1113, 193, + 193, 1113, 995, 1113, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 1113, 193, 193, 193, 992, 193, + 193, 193, 1113, 993, 1113, 1113, 193, 193, 1113, 995, + 193, 994, 193, 193, 193, 1113, 996, 193, 193, 193, + 193, 1029, 193, 193, 193, 193, 1113, 193, 193, 1113, + 193, 193, 1113, 193, 1113, 193, 193, 193, 994, 193, + 193, 193, 1113, 996, 193, 193, 193, 193, 1029, 1031, + 1113, 193, 193, 1113, 1030, 1113, 1113, 193, 193, 193, + 193, 1113, 193, 193, 193, 193, 1113, 193, 193, 193, + + 193, 1113, 193, 193, 193, 1113, 1031, 1113, 193, 193, + 1113, 1030, 1113, 1113, 1032, 193, 193, 193, 193, 193, + 193, 193, 193, 1113, 1113, 1033, 193, 193, 193, 193, + 1113, 193, 1113, 193, 193, 1113, 193, 1034, 193, 193, + 1113, 1032, 193, 1036, 193, 193, 193, 193, 193, 193, + 1113, 1035, 1033, 193, 193, 193, 193, 1113, 1113, 1037, + 193, 193, 193, 1113, 1034, 193, 193, 1113, 193, 193, + 1036, 193, 193, 193, 193, 193, 193, 193, 1035, 1113, + 193, 193, 193, 1113, 1113, 1113, 1037, 193, 1038, 193, + 193, 193, 193, 193, 1113, 193, 193, 1113, 1113, 193, + + 193, 193, 1113, 1113, 193, 193, 193, 193, 193, 193, + 193, 193, 1113, 193, 193, 1038, 1039, 193, 193, 193, + 193, 1113, 193, 1113, 193, 1113, 1113, 193, 1113, 1113, + 1113, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 1039, 193, 193, 1113, 1113, 1113, 193, + 1040, 193, 1113, 1113, 193, 193, 193, 1041, 193, 193, + 193, 193, 193, 193, 1113, 193, 193, 1113, 193, 193, + 193, 193, 193, 1042, 193, 193, 193, 1040, 193, 193, + 1113, 1113, 193, 193, 1041, 1113, 193, 193, 193, 193, + 1113, 193, 193, 193, 193, 193, 193, 193, 193, 1113, + + 1042, 193, 193, 193, 1044, 193, 193, 1113, 1043, 193, + 193, 1113, 193, 193, 193, 193, 1113, 1113, 193, 193, + 193, 193, 193, 193, 193, 193, 1113, 193, 193, 193, + 1113, 1044, 193, 193, 1113, 1043, 193, 193, 193, 193, + 193, 193, 193, 1046, 193, 1045, 193, 193, 193, 193, + 1113, 193, 1113, 193, 193, 193, 193, 1113, 193, 193, + 193, 1113, 193, 1047, 1048, 193, 193, 193, 193, 1113, + 1046, 193, 1045, 1113, 193, 193, 193, 193, 1113, 193, + 193, 193, 1113, 1113, 193, 193, 1049, 193, 1113, 193, + 1047, 1048, 193, 193, 193, 193, 1113, 193, 1050, 1051, + + 193, 193, 193, 193, 193, 1113, 193, 193, 193, 1113, + 1113, 193, 1113, 1049, 193, 193, 193, 1052, 193, 193, + 193, 193, 1113, 193, 193, 1050, 1051, 193, 193, 193, + 193, 193, 1113, 1113, 193, 1113, 1113, 193, 1113, 193, + 1113, 193, 193, 193, 1052, 193, 193, 193, 193, 1113, + 193, 193, 193, 1053, 193, 193, 193, 193, 193, 193, + 1113, 193, 1054, 1113, 193, 1113, 193, 1113, 193, 1113, + 193, 1113, 1055, 193, 1113, 193, 193, 1113, 193, 193, + 1053, 193, 193, 193, 193, 193, 193, 1113, 193, 1054, + 1056, 193, 1113, 1057, 193, 193, 193, 193, 1113, 1055, + + 1058, 1113, 193, 193, 193, 193, 1113, 1113, 1113, 193, + 193, 1113, 193, 193, 193, 193, 1113, 1056, 193, 193, + 1057, 193, 193, 193, 193, 1113, 1113, 1058, 193, 193, + 193, 193, 193, 193, 1113, 1113, 193, 193, 1113, 193, + 193, 193, 193, 1113, 193, 193, 193, 193, 193, 193, + 193, 193, 1059, 1113, 193, 193, 193, 193, 193, 193, + 193, 1113, 193, 193, 1113, 1060, 193, 193, 193, 1113, + 1113, 193, 193, 193, 193, 193, 193, 193, 193, 1059, + 1113, 193, 193, 193, 193, 193, 193, 1113, 1113, 193, + 193, 1113, 1060, 1076, 193, 193, 1113, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 1113, 1078, 193, 193, + 193, 193, 1113, 193, 1077, 1113, 193, 193, 193, 1113, + 1076, 193, 193, 1113, 193, 193, 193, 193, 193, 193, + 193, 193, 1079, 193, 1078, 193, 193, 193, 193, 1113, + 193, 1077, 193, 193, 193, 193, 193, 1113, 193, 193, + 1113, 193, 1113, 1113, 193, 1113, 193, 193, 1113, 1079, + 193, 193, 193, 193, 193, 193, 193, 193, 1113, 193, + 193, 1113, 1113, 193, 1080, 1113, 1113, 1113, 193, 1113, + 193, 1113, 193, 193, 193, 193, 1113, 193, 193, 193, + 193, 1113, 1113, 193, 193, 193, 1081, 193, 193, 1113, + + 193, 1080, 1113, 1113, 1113, 1113, 193, 193, 1113, 193, + 1113, 1113, 193, 193, 193, 1083, 193, 193, 193, 1082, + 1113, 193, 193, 1081, 193, 193, 193, 193, 1113, 1113, + 193, 193, 193, 193, 1113, 193, 193, 1113, 1113, 193, + 193, 193, 1083, 193, 193, 193, 1082, 1084, 193, 193, + 193, 193, 193, 193, 1113, 1085, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 1086, 193, 1113, 193, 193, + 193, 193, 1113, 1113, 1084, 193, 193, 193, 1113, 193, + 193, 1113, 1085, 193, 193, 193, 193, 193, 193, 1113, + 1113, 193, 1086, 1113, 1088, 1090, 193, 193, 1087, 1089, + + 193, 193, 193, 193, 193, 193, 193, 193, 1113, 193, + 193, 193, 193, 193, 1113, 193, 1113, 1113, 193, 193, + 193, 1088, 1090, 193, 193, 1087, 1089, 193, 193, 193, + 193, 193, 193, 193, 193, 1098, 193, 193, 193, 193, + 193, 1113, 193, 1113, 193, 193, 193, 193, 1099, 1113, + 193, 193, 1113, 193, 193, 1113, 193, 193, 193, 193, + 1113, 193, 1098, 193, 193, 193, 193, 193, 193, 1100, + 1113, 193, 193, 1113, 193, 1099, 1113, 193, 193, 1113, + 193, 193, 1113, 1113, 193, 193, 193, 193, 193, 1113, + 193, 193, 1113, 193, 1113, 193, 1100, 193, 193, 193, + + 1101, 193, 193, 193, 193, 193, 193, 193, 193, 1113, + 1113, 1113, 193, 1113, 193, 193, 1113, 193, 1113, 1113, + 193, 193, 1113, 193, 193, 193, 1102, 1101, 1113, 193, + 193, 193, 193, 193, 193, 193, 1104, 1113, 193, 193, + 1108, 193, 1103, 193, 193, 1113, 193, 193, 193, 1113, + 193, 193, 193, 1102, 1113, 193, 193, 193, 193, 193, + 193, 193, 1113, 1104, 1113, 193, 193, 1108, 193, 1103, + 193, 1113, 193, 193, 193, 193, 193, 193, 193, 193, + 1109, 193, 193, 193, 193, 1113, 193, 193, 193, 1113, + 193, 193, 1113, 193, 193, 193, 193, 1113, 1113, 193, + + 193, 1113, 193, 193, 193, 1113, 1113, 1109, 193, 193, + 1110, 193, 1113, 193, 193, 193, 1113, 193, 193, 193, + 193, 193, 193, 193, 1113, 193, 193, 193, 1112, 1113, + 1113, 193, 1113, 1113, 193, 1113, 193, 1110, 193, 193, + 193, 193, 193, 1113, 1113, 193, 193, 193, 1113, 1113, + 1113, 1113, 193, 193, 1113, 1112, 1113, 1113, 193, 1113, + 1113, 193, 1113, 1113, 1113, 1113, 193, 193, 1113, 1113, + 1113, 1113, 193, 46, 46, 46, 46, 46, 88, 1113, + 1113, 88, 88, 179, 179, 179, 1113, 179, 181, 1113, + 181, 181, 181, 184, 1113, 184, 184, 184, 193, 1113, + + 193, 193, 193, 7, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113 } ; -static const flex_int16_t yy_chk[4377] = +static const flex_int16_t yy_chk[5772] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1495,473 +1661,627 @@ static const flex_int16_t yy_chk[4377] = 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 9, 9, 10, 10, 15, 1084, - 15, 17, 17, 18, 18, 21, 22, 21, 24, 383, - 23, 30, 24, 21, 272, 21, 24, 23, 31, 21, - 21, 44, 24, 98, 23, 24, 22, 23, 55, 25, + 5, 5, 5, 5, 9, 9, 10, 10, 15, 1116, + 15, 17, 17, 18, 18, 21, 22, 21, 24, 389, + 23, 30, 24, 21, 276, 21, 24, 23, 31, 21, + 21, 22, 24, 44, 23, 24, 22, 23, 55, 25, 55, 25, 21, 22, 21, 24, 25, 23, 30, 24, - 21, 25, 21, 24, 23, 31, 21, 21, 44, 24, - 98, 23, 24, 22, 23, 27, 25, 28, 25, 186, + 21, 25, 21, 24, 23, 31, 21, 21, 22, 24, + 44, 23, 24, 22, 23, 27, 25, 28, 25, 188, - 32, 27, 185, 25, 32, 28, 29, 42, 25, 26, - 32, 28, 29, 29, 29, 42, 182, 26, 92, 29, + 32, 27, 187, 25, 32, 28, 29, 42, 25, 26, + 32, 28, 29, 29, 29, 42, 184, 26, 92, 29, 26, 91, 27, 26, 28, 88, 26, 32, 27, 26, 85, 32, 28, 29, 42, 60, 26, 32, 28, 29, 29, 29, 42, 34, 26, 33, 29, 26, 36, 33, - 26, 43, 43, 26, 35, 33, 26, 34, 59, 36, - 49, 49, 35, 34, 34, 36, 35, 38, 56, 35, + 26, 43, 43, 26, 35, 33, 26, 34, 98, 36, + 49, 49, 35, 34, 34, 36, 35, 38, 59, 35, 34, 38, 33, 50, 50, 36, 33, 38, 43, 43, - 52, 35, 33, 41, 34, 41, 36, 51, 41, 35, - 34, 34, 36, 35, 38, 39, 35, 39, 38, 99, + 56, 35, 33, 52, 34, 98, 36, 57, 57, 35, + 34, 34, 36, 35, 38, 41, 35, 41, 38, 99, - 39, 57, 57, 47, 38, 58, 58, 39, 39, 45, - 41, 20, 41, 86, 86, 41, 90, 90, 67, 70, - 100, 71, 39, 19, 39, 67, 99, 39, 100, 70, - 101, 67, 102, 101, 39, 39, 40, 103, 67, 70, - 40, 71, 106, 40, 40, 67, 70, 100, 71, 106, - 40, 107, 67, 40, 16, 100, 70, 101, 67, 102, - 101, 180, 180, 40, 103, 67, 70, 40, 71, 106, - 40, 40, 184, 184, 113, 77, 106, 40, 107, 11, - 40, 61, 61, 84, 61, 61, 61, 61, 61, 61, - 68, 61, 61, 61, 68, 77, 72, 61, 68, 61, + 41, 58, 58, 51, 38, 39, 102, 39, 86, 86, + 39, 90, 90, 39, 67, 47, 103, 39, 39, 45, + 105, 67, 41, 20, 41, 67, 99, 41, 67, 19, + 100, 67, 39, 102, 39, 108, 16, 39, 100, 114, + 39, 67, 70, 103, 39, 39, 40, 105, 67, 70, + 40, 110, 67, 40, 40, 67, 70, 100, 67, 70, + 40, 110, 108, 40, 11, 100, 114, 182, 182, 70, + 186, 186, 7, 40, 4, 3, 70, 40, 110, 0, + 40, 40, 0, 70, 0, 71, 70, 40, 110, 115, + 40, 61, 61, 0, 61, 61, 61, 61, 61, 61, - 72, 113, 77, 84, 68, 61, 72, 61, 109, 7, - 84, 61, 61, 114, 68, 115, 72, 68, 109, 116, - 4, 68, 77, 72, 61, 68, 61, 72, 3, 0, - 84, 68, 61, 72, 61, 109, 112, 112, 61, 61, - 114, 68, 115, 72, 0, 109, 116, 61, 62, 62, - 0, 62, 62, 62, 62, 62, 62, 73, 62, 62, - 62, 73, 76, 112, 112, 62, 76, 73, 104, 104, - 78, 110, 117, 76, 78, 119, 110, 73, 120, 76, - 78, 121, 104, 122, 73, 62, 76, 0, 73, 76, - 78, 123, 62, 76, 73, 104, 104, 78, 110, 117, + 71, 61, 61, 61, 77, 71, 68, 61, 101, 61, + 116, 101, 71, 68, 68, 61, 115, 61, 107, 77, + 68, 61, 61, 68, 77, 107, 117, 71, 113, 113, + 0, 77, 71, 68, 61, 101, 61, 116, 101, 0, + 68, 68, 61, 0, 61, 107, 77, 68, 61, 61, + 68, 77, 107, 117, 0, 113, 113, 61, 62, 62, + 0, 62, 62, 62, 62, 62, 62, 72, 62, 62, + 62, 72, 118, 111, 0, 62, 73, 72, 111, 120, + 73, 81, 72, 81, 121, 81, 73, 72, 81, 0, + 62, 73, 0, 81, 72, 62, 73, 0, 72, 118, - 76, 78, 119, 110, 73, 120, 76, 78, 121, 104, - 122, 124, 62, 76, 62, 63, 81, 78, 123, 63, - 125, 126, 63, 127, 128, 81, 127, 81, 129, 63, - 81, 131, 63, 132, 0, 134, 81, 82, 124, 63, - 0, 82, 63, 81, 0, 82, 63, 125, 126, 63, - 127, 128, 81, 127, 81, 129, 63, 81, 131, 63, - 132, 82, 134, 81, 82, 135, 63, 64, 82, 136, - 83, 64, 82, 83, 83, 64, 108, 108, 108, 137, - 108, 64, 0, 138, 64, 138, 140, 0, 82, 141, - 83, 64, 135, 0, 64, 142, 136, 83, 64, 0, + 111, 84, 62, 73, 72, 111, 120, 73, 81, 72, + 81, 121, 81, 73, 72, 81, 84, 62, 73, 76, + 81, 84, 62, 73, 62, 63, 76, 122, 84, 63, + 76, 123, 63, 76, 124, 125, 76, 126, 127, 63, + 129, 0, 63, 84, 63, 0, 76, 130, 84, 63, + 0, 0, 63, 76, 122, 132, 63, 76, 123, 63, + 76, 124, 125, 76, 126, 127, 63, 129, 78, 63, + 128, 63, 78, 128, 130, 133, 63, 64, 78, 82, + 135, 64, 132, 78, 64, 64, 82, 82, 78, 104, + 104, 64, 136, 82, 64, 78, 82, 128, 137, 78, - 83, 83, 64, 108, 108, 108, 137, 108, 64, 111, - 138, 64, 138, 140, 111, 143, 141, 83, 64, 65, - 111, 139, 142, 139, 144, 145, 65, 111, 65, 0, - 146, 0, 147, 65, 139, 0, 111, 149, 65, 65, - 0, 111, 143, 150, 0, 151, 65, 111, 139, 152, - 139, 144, 145, 65, 111, 65, 118, 146, 118, 147, - 65, 139, 118, 154, 149, 65, 65, 66, 154, 118, - 150, 66, 151, 118, 155, 66, 152, 156, 66, 157, - 0, 66, 153, 118, 66, 118, 153, 66, 0, 118, - 154, 66, 0, 0, 66, 154, 118, 0, 66, 0, + 128, 138, 133, 104, 64, 78, 82, 135, 64, 0, + 78, 64, 64, 82, 82, 78, 104, 104, 64, 136, + 82, 64, 65, 82, 134, 137, 141, 142, 138, 65, + 104, 65, 143, 139, 134, 139, 65, 65, 83, 134, + 134, 65, 65, 0, 144, 83, 83, 145, 146, 65, + 0, 134, 83, 141, 142, 83, 65, 0, 65, 143, + 139, 134, 139, 65, 65, 83, 134, 134, 65, 65, + 66, 144, 83, 83, 145, 146, 147, 66, 66, 83, + 148, 66, 83, 150, 66, 151, 0, 66, 152, 153, + 66, 0, 109, 109, 109, 112, 109, 66, 0, 0, - 118, 155, 66, 159, 156, 66, 157, 133, 66, 153, - 160, 66, 0, 153, 66, 158, 161, 133, 66, 69, - 69, 162, 133, 133, 158, 163, 69, 69, 69, 164, - 159, 165, 158, 69, 133, 166, 163, 160, 0, 69, - 0, 169, 158, 161, 133, 167, 69, 69, 162, 133, - 133, 158, 163, 69, 69, 69, 164, 170, 165, 158, - 69, 0, 166, 163, 0, 167, 69, 74, 169, 171, - 168, 74, 167, 168, 173, 171, 172, 174, 175, 191, - 0, 74, 0, 0, 170, 274, 276, 74, 74, 172, - 277, 74, 167, 0, 74, 0, 171, 168, 74, 191, + 112, 0, 156, 147, 66, 66, 112, 148, 66, 0, + 150, 66, 151, 112, 66, 152, 153, 66, 69, 109, + 109, 109, 112, 109, 69, 69, 69, 112, 140, 156, + 140, 69, 0, 112, 0, 154, 69, 0, 0, 154, + 112, 140, 155, 157, 0, 69, 158, 155, 160, 0, + 161, 69, 69, 69, 0, 140, 162, 140, 69, 119, + 163, 119, 154, 69, 74, 119, 154, 164, 140, 155, + 157, 74, 119, 158, 155, 160, 119, 161, 74, 165, + 159, 74, 166, 162, 74, 74, 119, 163, 119, 159, + 165, 74, 119, 0, 164, 167, 168, 159, 74, 119, - 168, 173, 171, 172, 174, 175, 191, 193, 74, 192, - 192, 196, 274, 276, 74, 74, 172, 277, 74, 75, - 75, 0, 193, 199, 196, 279, 191, 193, 75, 0, - 192, 196, 75, 0, 193, 75, 192, 192, 196, 75, - 0, 194, 0, 199, 0, 0, 75, 75, 194, 193, - 199, 196, 279, 0, 193, 75, 194, 192, 196, 75, - 195, 194, 75, 195, 195, 281, 75, 79, 194, 79, - 199, 197, 79, 197, 282, 194, 283, 284, 286, 79, - 79, 0, 0, 194, 195, 0, 0, 195, 194, 79, - 195, 195, 281, 197, 79, 0, 79, 0, 197, 79, + 0, 169, 0, 119, 171, 74, 165, 159, 74, 166, + 172, 74, 74, 75, 175, 176, 159, 165, 75, 173, + 75, 169, 167, 168, 159, 173, 75, 75, 169, 170, + 75, 171, 170, 75, 0, 0, 0, 172, 177, 0, + 75, 175, 176, 0, 278, 75, 173, 75, 169, 174, + 280, 0, 173, 75, 75, 193, 170, 75, 281, 170, + 75, 79, 174, 79, 283, 177, 79, 0, 285, 79, + 193, 278, 286, 79, 79, 193, 174, 280, 79, 0, + 0, 287, 193, 79, 0, 281, 288, 0, 79, 174, + 79, 283, 0, 79, 195, 285, 79, 193, 0, 286, - 197, 282, 287, 283, 284, 286, 79, 79, 198, 198, - 198, 195, 200, 209, 0, 0, 79, 80, 201, 200, - 197, 80, 201, 198, 80, 80, 200, 209, 198, 287, - 0, 80, 200, 209, 80, 198, 198, 198, 288, 200, - 209, 80, 201, 0, 80, 201, 200, 203, 80, 201, - 198, 80, 80, 200, 209, 198, 204, 203, 80, 200, - 209, 80, 0, 0, 289, 288, 0, 203, 80, 201, - 202, 204, 206, 207, 203, 290, 204, 202, 202, 202, - 291, 202, 292, 204, 203, 206, 206, 293, 295, 207, - 202, 289, 206, 207, 203, 0, 0, 202, 204, 206, + 79, 79, 193, 289, 291, 79, 194, 194, 287, 195, + 79, 80, 292, 288, 195, 80, 293, 196, 80, 80, + 0, 195, 194, 294, 196, 80, 0, 194, 80, 0, + 289, 291, 196, 194, 194, 0, 195, 196, 80, 292, + 0, 195, 80, 293, 196, 80, 80, 198, 295, 194, + 294, 196, 80, 197, 194, 80, 197, 197, 0, 196, + 198, 0, 198, 0, 196, 0, 0, 198, 199, 290, + 199, 290, 197, 296, 198, 295, 0, 197, 0, 0, + 197, 0, 0, 197, 197, 199, 290, 198, 201, 198, + 199, 200, 200, 200, 198, 199, 290, 199, 290, 197, - 207, 208, 290, 204, 202, 202, 202, 291, 202, 292, - 224, 208, 206, 206, 293, 295, 207, 202, 205, 206, - 207, 208, 205, 205, 213, 210, 210, 0, 208, 205, - 224, 213, 211, 0, 211, 296, 205, 224, 208, 0, - 214, 298, 205, 0, 213, 205, 210, 214, 208, 205, - 205, 213, 210, 210, 211, 0, 205, 224, 213, 211, - 214, 211, 296, 205, 299, 215, 216, 214, 298, 205, - 217, 213, 0, 210, 214, 215, 218, 0, 300, 216, - 217, 211, 212, 218, 212, 215, 216, 214, 212, 0, - 217, 299, 215, 216, 301, 212, 218, 217, 219, 212, + 296, 201, 0, 201, 197, 204, 200, 202, 201, 204, + 297, 200, 199, 290, 203, 201, 203, 199, 200, 200, + 200, 203, 202, 0, 204, 298, 203, 202, 201, 204, + 201, 0, 204, 200, 202, 201, 204, 297, 200, 300, + 206, 203, 0, 203, 301, 303, 304, 0, 203, 202, + 206, 204, 298, 203, 202, 206, 204, 205, 205, 205, + 206, 205, 305, 207, 205, 306, 300, 206, 209, 205, + 209, 301, 303, 304, 209, 209, 307, 206, 207, 302, + 209, 0, 206, 207, 205, 205, 205, 206, 205, 305, + 207, 205, 306, 210, 302, 209, 205, 209, 213, 213, - 230, 0, 215, 218, 212, 300, 216, 217, 219, 212, - 218, 212, 215, 216, 220, 212, 221, 217, 219, 222, - 230, 301, 212, 218, 220, 219, 212, 230, 222, 226, - 221, 212, 223, 221, 220, 219, 221, 0, 225, 222, - 226, 220, 225, 221, 228, 219, 222, 230, 223, 226, - 229, 220, 223, 228, 229, 222, 226, 221, 225, 223, - 221, 220, 0, 221, 228, 225, 222, 226, 242, 225, - 229, 228, 231, 231, 0, 223, 226, 229, 297, 223, - 228, 229, 0, 0, 302, 225, 227, 227, 242, 241, - 241, 228, 231, 297, 0, 242, 227, 229, 232, 231, + 0, 209, 209, 307, 308, 207, 302, 209, 210, 210, + 207, 208, 310, 210, 213, 311, 208, 211, 0, 213, + 210, 302, 208, 0, 208, 213, 213, 211, 214, 208, + 214, 308, 211, 212, 208, 210, 210, 211, 208, 310, + 210, 213, 311, 208, 211, 214, 213, 212, 212, 208, + 214, 208, 312, 212, 211, 214, 208, 214, 216, 211, + 212, 208, 0, 313, 211, 216, 314, 0, 315, 0, + 0, 0, 214, 216, 212, 212, 0, 214, 216, 312, + 212, 215, 217, 215, 316, 216, 218, 215, 317, 217, + 313, 318, 216, 314, 215, 315, 218, 217, 215, 0, - 231, 227, 227, 303, 232, 297, 232, 227, 233, 241, - 233, 302, 233, 227, 227, 242, 241, 241, 232, 231, - 297, 233, 305, 227, 0, 232, 0, 234, 227, 227, - 303, 232, 233, 232, 227, 233, 241, 233, 237, 233, - 234, 235, 236, 0, 0, 232, 306, 234, 233, 305, - 235, 236, 307, 237, 234, 238, 239, 0, 237, 233, - 240, 235, 236, 239, 240, 237, 244, 234, 235, 236, - 238, 243, 243, 306, 234, 238, 239, 235, 236, 307, - 237, 244, 238, 239, 240, 237, 244, 240, 235, 236, - 239, 240, 243, 244, 245, 308, 246, 238, 243, 243, + 216, 218, 217, 215, 319, 216, 218, 219, 215, 217, + 215, 316, 320, 218, 215, 317, 217, 227, 318, 0, + 219, 215, 219, 218, 217, 215, 220, 219, 218, 217, + 215, 319, 227, 218, 219, 221, 220, 227, 321, 320, + 322, 220, 221, 0, 227, 323, 220, 219, 0, 219, + 221, 222, 324, 220, 219, 221, 325, 326, 327, 227, + 223, 222, 221, 220, 227, 321, 222, 322, 220, 221, + 223, 222, 323, 220, 0, 223, 0, 221, 222, 324, + 223, 0, 221, 325, 326, 327, 224, 223, 222, 0, + 225, 328, 0, 222, 329, 330, 226, 223, 222, 225, - 246, 0, 238, 239, 0, 247, 0, 245, 244, 247, - 249, 240, 249, 244, 245, 248, 309, 310, 311, 243, - 246, 245, 308, 246, 248, 247, 250, 246, 251, 248, - 249, 251, 247, 250, 245, 248, 247, 249, 0, 249, - 0, 245, 248, 309, 310, 311, 250, 246, 251, 0, - 254, 248, 247, 250, 0, 251, 248, 249, 251, 252, - 250, 252, 248, 254, 253, 255, 0, 258, 252, 255, - 254, 312, 0, 250, 253, 251, 252, 254, 0, 256, - 0, 252, 256, 0, 253, 257, 252, 258, 252, 255, - 254, 253, 255, 257, 258, 252, 255, 254, 312, 259, + 224, 224, 223, 224, 228, 225, 224, 223, 228, 331, + 225, 226, 226, 224, 229, 332, 226, 225, 328, 228, + 0, 329, 330, 226, 228, 229, 225, 224, 224, 229, + 224, 228, 225, 224, 229, 228, 331, 225, 226, 226, + 231, 229, 332, 226, 232, 0, 228, 333, 232, 231, + 0, 228, 229, 233, 334, 231, 229, 333, 335, 232, + 231, 229, 230, 230, 232, 0, 0, 231, 233, 0, + 337, 232, 230, 233, 333, 232, 231, 230, 230, 338, + 233, 334, 231, 230, 333, 335, 232, 231, 235, 230, + 230, 232, 234, 234, 235, 233, 235, 337, 339, 230, - 313, 253, 256, 252, 257, 257, 256, 259, 252, 256, - 260, 253, 257, 0, 258, 0, 255, 0, 261, 259, - 257, 260, 261, 263, 263, 314, 259, 313, 0, 256, - 260, 257, 257, 267, 259, 264, 262, 260, 261, 264, - 262, 0, 261, 262, 263, 261, 259, 0, 260, 261, - 263, 263, 314, 267, 0, 264, 262, 260, 268, 266, - 267, 265, 264, 262, 0, 261, 264, 262, 265, 261, - 262, 263, 266, 268, 265, 285, 315, 285, 268, 266, - 267, 265, 264, 262, 0, 268, 266, 269, 265, 316, - 317, 269, 285, 318, 319, 265, 320, 321, 322, 266, + 233, 340, 0, 235, 230, 230, 338, 234, 235, 237, + 230, 0, 234, 0, 341, 235, 0, 0, 238, 234, + 234, 235, 237, 235, 237, 339, 0, 238, 340, 237, + 235, 0, 0, 238, 234, 235, 237, 0, 238, 234, + 236, 341, 236, 239, 236, 238, 240, 0, 342, 237, + 0, 237, 239, 236, 238, 0, 237, 241, 239, 236, + 238, 240, 0, 239, 236, 238, 240, 236, 0, 236, + 239, 236, 241, 240, 242, 342, 343, 241, 243, 239, + 236, 242, 243, 0, 241, 239, 236, 344, 240, 242, + 239, 236, 245, 240, 242, 244, 244, 243, 345, 241, - 268, 265, 285, 315, 285, 268, 266, 323, 265, 324, - 325, 269, 326, 327, 269, 329, 316, 317, 269, 285, - 318, 319, 328, 320, 321, 322, 330, 332, 333, 334, - 335, 336, 328, 337, 323, 338, 324, 325, 269, 326, - 327, 339, 329, 340, 341, 343, 344, 345, 346, 328, - 347, 348, 349, 330, 332, 333, 334, 335, 336, 328, - 337, 350, 338, 351, 352, 353, 354, 355, 339, 356, - 340, 341, 343, 344, 345, 346, 357, 347, 348, 349, - 358, 360, 361, 362, 363, 364, 365, 366, 350, 367, - 351, 352, 353, 354, 355, 369, 356, 370, 371, 372, + 0, 242, 243, 343, 241, 243, 0, 245, 242, 243, + 244, 0, 245, 0, 344, 244, 242, 246, 246, 245, + 247, 242, 244, 244, 243, 345, 0, 249, 248, 243, + 346, 249, 0, 246, 245, 247, 348, 244, 246, 245, + 247, 248, 244, 248, 246, 246, 249, 247, 248, 250, + 349, 249, 350, 250, 249, 248, 351, 346, 249, 251, + 246, 251, 247, 348, 250, 246, 251, 247, 248, 250, + 248, 251, 252, 249, 252, 248, 250, 349, 249, 350, + 250, 0, 253, 351, 352, 353, 251, 252, 251, 253, + 262, 250, 252, 251, 0, 354, 250, 253, 251, 252, - 371, 373, 374, 357, 375, 376, 370, 358, 360, 361, - 362, 363, 364, 365, 366, 377, 367, 378, 380, 379, - 381, 384, 369, 379, 370, 371, 372, 371, 373, 374, - 0, 375, 376, 370, 385, 386, 387, 389, 493, 391, - 0, 384, 377, 0, 378, 380, 379, 381, 384, 390, - 379, 388, 0, 390, 385, 386, 387, 389, 388, 391, - 0, 385, 386, 387, 389, 493, 391, 392, 384, 494, - 393, 388, 395, 390, 393, 394, 390, 392, 388, 395, - 390, 385, 386, 387, 389, 388, 391, 392, 401, 0, - 393, 0, 395, 394, 392, 394, 494, 393, 388, 395, + 254, 252, 253, 254, 255, 262, 255, 0, 256, 253, + 262, 352, 353, 255, 252, 254, 253, 262, 256, 252, + 254, 255, 354, 256, 253, 355, 255, 254, 256, 253, + 254, 255, 262, 255, 257, 256, 0, 262, 257, 356, + 255, 357, 254, 258, 358, 256, 359, 254, 255, 257, + 256, 360, 355, 255, 257, 256, 258, 0, 258, 260, + 259, 257, 260, 258, 259, 257, 356, 361, 357, 362, + 258, 358, 0, 359, 0, 363, 257, 260, 360, 259, + 261, 257, 260, 258, 259, 258, 260, 259, 261, 260, + 258, 259, 365, 263, 361, 261, 362, 366, 367, 261, - 390, 393, 394, 397, 392, 398, 395, 396, 401, 396, - 0, 0, 0, 400, 392, 401, 397, 393, 399, 395, - 394, 398, 394, 397, 396, 398, 399, 404, 400, 396, - 397, 0, 398, 400, 396, 401, 396, 402, 399, 405, - 400, 402, 0, 397, 0, 399, 0, 404, 398, 403, - 397, 396, 398, 399, 404, 400, 396, 408, 407, 405, - 400, 402, 407, 403, 402, 399, 405, 410, 402, 403, - 0, 406, 408, 409, 404, 409, 403, 408, 406, 0, - 0, 0, 407, 495, 408, 407, 405, 410, 402, 407, - 403, 406, 411, 414, 410, 409, 403, 413, 406, 408, + 261, 263, 363, 264, 260, 0, 259, 261, 263, 260, + 0, 259, 265, 263, 264, 261, 265, 368, 264, 365, + 263, 0, 261, 264, 366, 367, 261, 261, 263, 369, + 264, 265, 265, 268, 370, 263, 265, 268, 371, 265, + 263, 264, 266, 265, 368, 264, 266, 372, 268, 266, + 264, 267, 267, 268, 0, 373, 369, 266, 265, 265, + 268, 370, 266, 265, 268, 371, 271, 267, 375, 266, + 269, 378, 267, 266, 372, 268, 266, 269, 267, 267, + 268, 271, 373, 269, 266, 269, 271, 270, 0, 266, + 269, 272, 0, 271, 267, 375, 379, 269, 378, 267, - 409, 415, 409, 412, 408, 406, 412, 411, 413, 407, - 495, 417, 411, 414, 410, 0, 0, 413, 406, 411, - 414, 415, 409, 416, 413, 0, 412, 416, 415, 0, - 412, 417, 419, 412, 411, 413, 0, 0, 417, 411, - 414, 418, 420, 418, 413, 423, 419, 416, 415, 420, - 416, 421, 419, 412, 416, 496, 424, 497, 417, 419, - 424, 422, 420, 418, 421, 423, 498, 0, 418, 420, - 418, 421, 423, 419, 416, 422, 420, 425, 421, 419, - 424, 422, 496, 424, 497, 425, 426, 424, 422, 420, - 418, 421, 423, 498, 426, 499, 427, 425, 421, 429, + 270, 273, 270, 380, 269, 273, 272, 270, 271, 381, + 269, 272, 269, 271, 270, 376, 382, 269, 272, 377, + 273, 377, 383, 379, 376, 273, 384, 270, 273, 270, + 380, 385, 273, 272, 270, 385, 381, 386, 272, 387, + 390, 391, 376, 382, 0, 501, 377, 273, 377, 383, + 392, 376, 273, 384, 393, 390, 391, 0, 385, 0, + 390, 391, 385, 0, 386, 392, 387, 390, 391, 393, + 392, 394, 501, 0, 393, 395, 502, 392, 394, 503, + 396, 393, 390, 391, 396, 0, 394, 390, 391, 504, + 395, 394, 392, 0, 397, 395, 393, 392, 394, 396, - 501, 505, 422, 427, 425, 431, 426, 424, 422, 431, - 0, 428, 425, 426, 428, 429, 427, 430, 0, 429, - 430, 426, 499, 427, 425, 431, 429, 501, 505, 436, - 427, 0, 431, 426, 428, 432, 431, 430, 428, 434, - 433, 428, 429, 427, 430, 434, 429, 430, 435, 436, - 432, 437, 431, 433, 438, 432, 436, 506, 435, 434, - 433, 428, 432, 439, 430, 507, 434, 433, 435, 442, - 509, 437, 434, 439, 438, 435, 436, 432, 437, 443, - 433, 438, 432, 439, 506, 435, 434, 433, 440, 442, - 439, 444, 507, 441, 443, 435, 442, 509, 437, 443, + 398, 393, 395, 502, 396, 394, 503, 396, 399, 397, + 398, 396, 399, 394, 397, 398, 504, 395, 394, 0, + 398, 397, 395, 399, 505, 400, 396, 398, 399, 401, + 0, 396, 0, 506, 0, 399, 397, 398, 507, 399, + 400, 397, 398, 400, 401, 400, 402, 398, 0, 401, + 399, 505, 400, 402, 508, 399, 401, 403, 510, 403, + 506, 402, 404, 514, 515, 507, 402, 400, 516, 0, + 400, 401, 400, 402, 403, 404, 401, 404, 518, 403, + 402, 508, 404, 405, 403, 510, 403, 519, 402, 404, + 514, 515, 406, 402, 0, 516, 407, 520, 405, 405, - 439, 438, 441, 445, 440, 0, 443, 445, 440, 0, - 439, 444, 510, 441, 0, 440, 442, 448, 444, 448, - 441, 443, 0, 445, 446, 446, 443, 451, 0, 441, - 445, 440, 447, 450, 445, 440, 447, 448, 444, 510, - 441, 449, 451, 449, 448, 446, 448, 451, 0, 450, - 445, 446, 446, 450, 451, 452, 447, 453, 454, 447, - 450, 449, 0, 447, 448, 454, 455, 456, 449, 451, - 449, 452, 446, 0, 451, 452, 450, 453, 454, 455, - 450, 456, 452, 447, 453, 454, 455, 456, 449, 457, - 458, 459, 454, 455, 456, 459, 0, 463, 452, 462, + 406, 403, 404, 405, 404, 518, 403, 406, 521, 404, + 405, 407, 406, 408, 519, 0, 407, 409, 0, 406, + 0, 409, 411, 407, 520, 405, 405, 406, 408, 0, + 405, 410, 412, 408, 406, 521, 409, 411, 407, 406, + 408, 409, 411, 407, 409, 410, 410, 412, 409, 411, + 413, 410, 412, 522, 0, 408, 415, 413, 410, 412, + 408, 523, 414, 409, 411, 413, 414, 524, 409, 411, + 413, 415, 410, 410, 412, 0, 415, 413, 410, 412, + 522, 414, 525, 415, 413, 416, 414, 416, 523, 414, + 417, 418, 413, 414, 524, 526, 527, 413, 415, 0, - 461, 463, 452, 460, 453, 454, 455, 462, 456, 457, - 458, 461, 460, 455, 456, 459, 457, 458, 459, 462, - 461, 463, 459, 460, 463, 464, 462, 461, 463, 465, - 460, 511, 465, 467, 462, 512, 457, 458, 461, 460, - 464, 469, 459, 470, 466, 464, 462, 461, 463, 465, - 460, 466, 464, 467, 472, 468, 465, 0, 511, 465, - 467, 469, 512, 470, 466, 468, 471, 464, 469, 472, - 470, 466, 464, 0, 472, 468, 465, 0, 466, 473, - 467, 472, 468, 478, 471, 476, 471, 475, 469, 513, - 470, 466, 468, 471, 473, 479, 472, 474, 475, 473, + 528, 419, 416, 415, 419, 417, 418, 416, 414, 525, + 417, 418, 416, 414, 416, 420, 531, 417, 418, 419, + 532, 421, 526, 527, 419, 422, 420, 528, 419, 416, + 420, 419, 417, 418, 416, 420, 421, 417, 418, 533, + 422, 421, 420, 531, 424, 422, 419, 532, 421, 534, + 423, 419, 422, 420, 423, 535, 425, 420, 425, 424, + 536, 537, 420, 421, 424, 0, 533, 422, 421, 423, + 539, 424, 422, 425, 423, 426, 534, 423, 425, 0, + 0, 423, 535, 425, 540, 425, 424, 536, 537, 426, + 426, 424, 427, 428, 543, 426, 423, 539, 0, 427, - 476, 472, 468, 478, 474, 476, 473, 475, 0, 477, - 478, 471, 476, 471, 475, 479, 513, 474, 477, 480, - 0, 473, 479, 482, 474, 475, 473, 476, 480, 477, - 478, 474, 476, 482, 475, 482, 477, 0, 481, 480, - 0, 483, 479, 482, 474, 477, 480, 481, 484, 514, - 482, 483, 484, 0, 0, 480, 477, 0, 481, 515, - 482, 483, 482, 516, 485, 481, 480, 486, 483, 0, - 482, 517, 484, 485, 481, 484, 514, 488, 483, 484, - 487, 489, 487, 486, 485, 481, 515, 486, 483, 518, - 516, 485, 0, 0, 486, 488, 489, 488, 517, 484, + 425, 423, 426, 0, 544, 425, 428, 427, 428, 429, + 430, 540, 427, 428, 0, 545, 426, 426, 0, 427, + 428, 543, 426, 429, 429, 430, 427, 0, 0, 429, + 430, 544, 546, 428, 427, 428, 429, 430, 0, 427, + 428, 431, 545, 0, 549, 431, 432, 433, 550, 551, + 429, 429, 430, 0, 432, 433, 429, 430, 552, 546, + 431, 432, 433, 434, 553, 431, 432, 433, 431, 0, + 434, 549, 431, 432, 433, 550, 551, 435, 434, 0, + 435, 432, 433, 434, 0, 552, 436, 431, 432, 433, + 434, 553, 431, 432, 433, 435, 437, 434, 0, 437, - 485, 489, 487, 519, 488, 492, 490, 487, 489, 487, - 486, 485, 522, 523, 486, 490, 518, 491, 492, 490, - 491, 524, 488, 489, 488, 492, 490, 525, 489, 487, - 519, 526, 492, 490, 527, 528, 530, 491, 531, 522, - 523, 534, 490, 535, 491, 492, 490, 491, 524, 537, - 540, 541, 492, 490, 525, 542, 543, 544, 526, 547, - 545, 527, 528, 530, 491, 531, 551, 553, 534, 555, - 535, 545, 556, 556, 557, 558, 537, 540, 541, 560, - 561, 562, 542, 543, 544, 563, 547, 545, 564, 566, - 567, 568, 569, 551, 553, 570, 555, 571, 545, 556, + 435, 436, 436, 0, 435, 434, 436, 435, 0, 0, + 434, 437, 556, 436, 0, 438, 437, 439, 0, 438, + 560, 440, 435, 437, 0, 441, 437, 435, 436, 436, + 438, 441, 439, 436, 440, 438, 440, 439, 437, 556, + 441, 440, 438, 437, 439, 441, 438, 560, 440, 562, + 442, 443, 441, 564, 444, 565, 565, 438, 441, 439, + 442, 440, 438, 440, 439, 442, 443, 441, 440, 444, + 442, 443, 441, 554, 444, 445, 562, 442, 443, 446, + 564, 444, 565, 565, 554, 566, 0, 442, 447, 446, + 445, 567, 442, 443, 446, 445, 444, 442, 443, 446, - 556, 557, 558, 572, 573, 574, 560, 561, 562, 576, - 577, 578, 563, 579, 582, 564, 566, 567, 568, 569, - 583, 585, 570, 586, 571, 587, 588, 589, 590, 591, - 572, 573, 574, 592, 594, 596, 576, 577, 578, 601, - 579, 582, 0, 602, 599, 600, 0, 583, 585, 605, - 586, 0, 587, 588, 589, 590, 591, 599, 600, 601, - 592, 594, 596, 602, 599, 600, 601, 603, 604, 605, - 602, 599, 600, 606, 607, 0, 605, 604, 607, 608, - 603, 0, 609, 610, 599, 600, 601, 603, 604, 0, - 602, 599, 600, 606, 603, 604, 605, 0, 607, 608, + 554, 444, 445, 447, 447, 448, 446, 0, 447, 449, + 569, 554, 566, 450, 448, 447, 446, 445, 567, 451, + 448, 446, 445, 452, 449, 448, 446, 452, 450, 449, + 447, 447, 448, 450, 451, 447, 449, 569, 452, 451, + 450, 448, 0, 452, 570, 0, 451, 448, 453, 453, + 452, 449, 448, 454, 452, 450, 449, 454, 0, 0, + 450, 451, 571, 572, 453, 452, 451, 458, 573, 453, + 452, 570, 454, 575, 0, 453, 453, 454, 576, 0, + 454, 577, 458, 455, 454, 455, 456, 458, 456, 571, + 572, 453, 0, 578, 458, 573, 453, 579, 455, 454, - 606, 607, 609, 610, 604, 607, 608, 603, 611, 609, - 610, 613, 614, 612, 603, 604, 611, 612, 0, 0, - 606, 615, 0, 0, 613, 607, 608, 0, 611, 609, - 610, 613, 614, 612, 617, 611, 615, 619, 613, 614, - 612, 615, 616, 611, 612, 618, 621, 707, 615, 617, - 621, 613, 618, 619, 617, 611, 616, 619, 613, 614, - 612, 617, 616, 615, 619, 618, 0, 620, 615, 616, - 621, 0, 618, 621, 707, 622, 617, 621, 625, 618, - 619, 617, 620, 616, 619, 625, 0, 620, 622, 616, - 626, 623, 618, 623, 620, 622, 624, 621, 625, 627, + 575, 456, 457, 455, 454, 576, 456, 0, 577, 458, + 455, 459, 455, 456, 458, 456, 580, 457, 457, 460, + 578, 464, 457, 0, 579, 455, 459, 459, 456, 457, + 455, 459, 581, 456, 460, 461, 464, 582, 459, 460, + 0, 464, 461, 580, 457, 457, 460, 583, 464, 457, + 461, 585, 462, 459, 459, 461, 463, 586, 459, 581, + 465, 460, 461, 464, 582, 462, 460, 462, 464, 461, + 463, 463, 462, 0, 583, 465, 463, 461, 585, 462, + 465, 466, 461, 463, 586, 466, 467, 465, 0, 0, + 587, 0, 462, 0, 462, 467, 588, 463, 463, 462, - 624, 709, 622, 0, 711, 625, 712, 0, 0, 620, - 626, 0, 625, 623, 620, 622, 624, 626, 623, 627, - 623, 628, 622, 624, 629, 625, 627, 624, 709, 630, - 632, 711, 628, 712, 632, 629, 0, 626, 631, 713, - 623, 628, 0, 624, 629, 630, 627, 634, 628, 630, - 635, 629, 0, 631, 632, 638, 630, 632, 631, 628, - 633, 632, 629, 636, 633, 631, 713, 634, 628, 637, - 635, 629, 630, 637, 634, 638, 630, 635, 636, 639, - 631, 632, 638, 636, 633, 631, 0, 633, 640, 714, - 636, 633, 640, 637, 634, 0, 637, 635, 641, 639, + 466, 467, 465, 463, 468, 466, 467, 465, 466, 589, + 469, 592, 466, 467, 471, 468, 470, 587, 469, 468, + 470, 0, 467, 588, 468, 469, 0, 466, 467, 471, + 469, 468, 466, 467, 471, 470, 589, 469, 592, 474, + 470, 471, 468, 470, 593, 469, 468, 470, 473, 595, + 472, 468, 469, 472, 474, 473, 471, 469, 476, 474, + 596, 471, 470, 473, 475, 472, 474, 470, 473, 597, + 472, 593, 0, 476, 475, 473, 595, 472, 476, 475, + 472, 474, 473, 477, 475, 476, 474, 596, 598, 478, + 473, 475, 472, 599, 600, 473, 597, 472, 477, 480, - 637, 642, 638, 644, 643, 636, 639, 645, 0, 641, - 636, 633, 640, 643, 715, 640, 714, 646, 641, 640, - 637, 642, 647, 644, 643, 641, 639, 645, 642, 0, - 644, 643, 0, 648, 645, 647, 641, 646, 652, 640, - 643, 715, 647, 649, 646, 641, 650, 0, 642, 647, - 644, 643, 648, 648, 645, 651, 649, 651, 652, 650, - 648, 654, 647, 649, 646, 652, 650, 653, 651, 647, - 649, 655, 656, 650, 653, 651, 658, 0, 0, 648, - 648, 654, 651, 649, 651, 652, 650, 653, 654, 657, - 649, 655, 656, 650, 653, 651, 658, 660, 655, 656, + 476, 475, 479, 477, 478, 476, 475, 478, 481, 478, + 477, 475, 0, 479, 480, 598, 478, 479, 484, 480, + 599, 600, 479, 481, 601, 477, 480, 602, 481, 479, + 477, 478, 482, 484, 478, 481, 478, 604, 484, 482, + 479, 480, 483, 606, 479, 484, 480, 482, 486, 479, + 481, 601, 482, 483, 602, 481, 487, 483, 485, 482, + 484, 719, 483, 486, 604, 484, 482, 485, 486, 483, + 606, 487, 488, 485, 482, 486, 487, 721, 485, 482, + 483, 488, 489, 487, 483, 485, 0, 488, 719, 483, + 486, 489, 488, 723, 485, 486, 725, 489, 487, 488, - 659, 653, 651, 658, 657, 661, 0, 659, 654, 657, - 0, 0, 0, 664, 653, 662, 657, 660, 655, 656, - 659, 0, 716, 658, 660, 661, 664, 659, 665, 662, - 662, 657, 661, 664, 659, 662, 657, 666, 663, 666, - 664, 663, 662, 667, 660, 0, 0, 659, 665, 716, - 0, 718, 661, 664, 668, 665, 662, 662, 663, 666, - 664, 719, 662, 667, 666, 663, 666, 668, 663, 669, - 667, 670, 671, 672, 668, 665, 0, 672, 718, 670, - 0, 668, 669, 673, 720, 663, 666, 673, 719, 669, - 667, 670, 671, 0, 668, 674, 669, 672, 670, 671, + 485, 490, 489, 487, 721, 485, 492, 491, 488, 489, + 492, 490, 726, 490, 488, 727, 490, 491, 489, 488, + 723, 490, 491, 725, 489, 492, 493, 491, 490, 489, + 492, 728, 729, 492, 491, 493, 731, 492, 490, 726, + 490, 493, 727, 490, 491, 494, 493, 0, 490, 491, + 732, 733, 492, 493, 491, 497, 496, 492, 728, 729, + 494, 494, 493, 731, 495, 494, 495, 734, 493, 736, + 497, 496, 494, 493, 496, 497, 496, 732, 733, 737, + 0, 495, 497, 496, 0, 0, 495, 494, 494, 738, + 739, 495, 494, 495, 734, 740, 736, 497, 496, 498, - 672, 668, 0, 674, 672, 676, 670, 673, 675, 669, - 673, 720, 0, 0, 673, 674, 669, 721, 670, 671, - 676, 675, 674, 677, 672, 676, 677, 0, 675, 678, - 674, 679, 676, 0, 673, 675, 0, 678, 0, 680, - 679, 680, 674, 681, 721, 682, 677, 676, 675, 678, - 677, 679, 676, 677, 684, 675, 678, 686, 679, 685, - 687, 680, 690, 681, 678, 682, 680, 679, 680, 685, - 681, 683, 682, 677, 684, 683, 678, 686, 679, 685, - 687, 684, 690, 688, 686, 689, 685, 687, 680, 690, - 681, 683, 682, 691, 723, 691, 685, 688, 683, 689, + 741, 496, 497, 496, 742, 500, 737, 498, 495, 499, + 743, 498, 499, 495, 498, 609, 738, 739, 500, 0, + 500, 0, 740, 744, 499, 500, 498, 741, 609, 499, + 609, 742, 500, 610, 498, 609, 499, 743, 498, 499, + 0, 498, 609, 611, 612, 500, 610, 500, 610, 745, + 744, 499, 500, 610, 613, 609, 499, 609, 611, 612, + 610, 0, 609, 611, 612, 0, 0, 613, 614, 613, + 611, 612, 615, 610, 613, 610, 745, 614, 616, 0, + 610, 613, 617, 614, 748, 611, 612, 615, 614, 0, + 611, 612, 615, 616, 613, 614, 613, 617, 616, 615, - 0, 684, 683, 688, 686, 689, 685, 687, 692, 690, - 688, 693, 689, 697, 695, 691, 0, 692, 683, 694, - 691, 723, 691, 694, 688, 724, 689, 693, 692, 695, - 688, 693, 689, 697, 695, 692, 0, 696, 693, 696, - 697, 695, 691, 694, 692, 698, 694, 699, 698, 725, - 694, 701, 724, 700, 693, 692, 695, 696, 693, 702, - 697, 695, 703, 704, 696, 698, 696, 699, 726, 700, - 694, 701, 698, 700, 699, 698, 725, 727, 701, 702, - 700, 728, 703, 704, 696, 729, 702, 730, 731, 703, - 704, 732, 698, 735, 699, 726, 700, 736, 701, 738, + 0, 613, 617, 618, 614, 616, 619, 618, 620, 617, + 614, 748, 749, 0, 615, 614, 621, 751, 0, 615, + 616, 619, 618, 620, 617, 616, 619, 618, 620, 617, + 618, 621, 622, 619, 618, 620, 621, 0, 752, 749, + 622, 623, 625, 621, 751, 623, 754, 622, 619, 618, + 620, 624, 622, 619, 618, 620, 623, 625, 621, 622, + 626, 623, 625, 621, 624, 752, 624, 622, 623, 625, + 628, 624, 623, 754, 622, 626, 757, 758, 624, 622, + 626, 627, 0, 623, 625, 628, 759, 626, 623, 625, + 628, 624, 0, 624, 0, 627, 627, 628, 624, 629, - 700, 740, 743, 744, 727, 745, 702, 746, 728, 703, - 704, 751, 729, 753, 730, 731, 754, 755, 732, 758, - 735, 759, 760, 761, 736, 762, 738, 764, 740, 743, - 744, 765, 745, 766, 746, 767, 768, 769, 751, 770, - 753, 771, 772, 754, 755, 773, 758, 774, 759, 760, - 761, 776, 762, 777, 764, 778, 780, 781, 765, 782, - 766, 784, 767, 768, 769, 785, 770, 787, 771, 772, - 786, 0, 773, 788, 774, 789, 790, 0, 776, 863, - 777, 784, 778, 780, 781, 785, 782, 787, 784, 793, - 786, 786, 785, 788, 787, 789, 790, 786, 791, 791, + 630, 627, 626, 757, 758, 760, 629, 626, 627, 631, + 765, 0, 628, 759, 629, 630, 630, 628, 0, 629, + 630, 632, 627, 627, 631, 632, 629, 630, 627, 631, + 0, 767, 760, 629, 635, 768, 631, 765, 635, 769, + 632, 629, 630, 630, 633, 632, 629, 630, 632, 635, + 772, 631, 632, 634, 635, 634, 631, 633, 767, 633, + 773, 635, 768, 774, 633, 635, 769, 632, 637, 775, + 634, 633, 632, 776, 638, 634, 635, 772, 636, 778, + 634, 635, 634, 637, 633, 636, 633, 773, 637, 638, + 774, 633, 779, 636, 638, 637, 775, 634, 636, 0, - 788, 792, 789, 790, 793, 865, 863, 0, 784, 793, - 792, 866, 785, 795, 787, 796, 793, 786, 786, 791, - 788, 792, 789, 790, 794, 791, 791, 0, 792, 800, - 801, 793, 865, 795, 794, 796, 793, 792, 866, 797, - 795, 0, 796, 797, 794, 798, 791, 799, 792, 800, - 801, 794, 0, 867, 799, 798, 800, 801, 803, 797, - 795, 794, 796, 805, 802, 798, 797, 799, 802, 806, - 797, 794, 798, 803, 799, 0, 800, 801, 803, 804, - 867, 799, 798, 805, 802, 803, 797, 807, 804, 806, - 805, 802, 798, 808, 799, 802, 806, 810, 809, 804, + 776, 638, 634, 639, 0, 636, 778, 780, 781, 782, + 637, 640, 636, 641, 639, 637, 638, 642, 639, 779, + 636, 638, 640, 639, 783, 636, 640, 784, 641, 641, + 639, 640, 642, 641, 780, 781, 782, 642, 640, 0, + 641, 639, 643, 644, 642, 639, 643, 644, 645, 640, + 639, 783, 785, 640, 784, 641, 641, 646, 640, 642, + 641, 643, 644, 645, 642, 647, 643, 644, 645, 643, + 644, 649, 646, 643, 644, 645, 786, 646, 648, 785, + 647, 650, 648, 0, 646, 647, 649, 787, 643, 644, + 645, 649, 647, 643, 644, 645, 650, 648, 649, 646, - 803, 810, 807, 812, 0, 803, 804, 807, 808, 0, - 805, 802, 809, 808, 807, 804, 806, 810, 809, 811, - 808, 811, 813, 812, 810, 809, 804, 869, 810, 807, - 812, 815, 814, 816, 807, 808, 818, 871, 815, 809, - 808, 811, 813, 0, 810, 809, 811, 814, 811, 813, - 812, 815, 814, 816, 869, 817, 818, 817, 815, 814, - 816, 819, 872, 818, 871, 815, 820, 821, 811, 813, - 822, 823, 0, 0, 814, 817, 819, 0, 815, 814, - 816, 819, 817, 818, 817, 822, 820, 821, 819, 872, - 822, 823, 0, 820, 821, 824, 826, 822, 823, 825, + 652, 650, 648, 786, 646, 648, 651, 647, 650, 648, + 651, 652, 647, 649, 787, 652, 653, 0, 649, 0, + 652, 788, 0, 650, 648, 651, 654, 652, 650, 648, + 651, 653, 0, 651, 655, 654, 653, 651, 652, 789, + 656, 654, 652, 653, 657, 791, 654, 652, 788, 655, + 792, 0, 651, 654, 655, 656, 0, 651, 653, 657, + 656, 655, 654, 653, 657, 658, 789, 656, 654, 659, + 793, 657, 791, 654, 795, 796, 655, 792, 658, 0, + 658, 655, 656, 663, 659, 658, 657, 656, 659, 659, + 0, 657, 658, 660, 0, 0, 659, 793, 663, 797, - 827, 828, 817, 819, 829, 830, 825, 0, 819, 824, - 831, 0, 822, 820, 821, 824, 826, 822, 823, 825, - 827, 828, 824, 826, 829, 830, 825, 827, 828, 834, - 831, 829, 830, 825, 832, 835, 824, 831, 832, 836, - 837, 0, 824, 826, 834, 0, 825, 827, 828, 834, - 833, 829, 830, 833, 0, 835, 834, 831, 832, 836, - 837, 832, 835, 840, 0, 832, 836, 837, 838, 841, - 833, 834, 842, 841, 873, 0, 834, 833, 839, 0, - 833, 838, 835, 840, 854, 832, 836, 837, 838, 841, - 840, 839, 842, 845, 845, 838, 841, 833, 839, 842, + 881, 795, 796, 663, 661, 658, 660, 658, 660, 0, + 663, 659, 658, 660, 0, 659, 659, 661, 883, 661, + 660, 662, 664, 662, 661, 663, 797, 881, 0, 664, + 663, 661, 665, 660, 662, 660, 662, 664, 666, 0, + 660, 662, 664, 0, 661, 883, 661, 665, 662, 664, + 662, 661, 665, 666, 0, 667, 664, 668, 666, 665, + 884, 662, 885, 662, 664, 666, 669, 0, 662, 664, + 667, 887, 668, 889, 665, 667, 670, 668, 890, 665, + 666, 669, 667, 670, 668, 666, 669, 884, 0, 885, + 0, 670, 671, 669, 672, 891, 670, 667, 887, 668, - 841, 873, 843, 844, 854, 839, 843, 844, 838, 0, - 840, 854, 875, 877, 845, 838, 841, 846, 839, 842, - 845, 845, 847, 847, 848, 839, 843, 844, 848, 843, - 844, 854, 846, 843, 844, 0, 855, 846, 849, 875, - 877, 845, 851, 847, 846, 0, 0, 850, 848, 847, - 847, 848, 849, 843, 844, 848, 855, 851, 849, 846, - 850, 881, 851, 855, 846, 849, 857, 850, 852, 851, - 847, 858, 852, 853, 850, 848, 859, 853, 860, 849, - 856, 856, 860, 855, 851, 849, 857, 850, 881, 851, - 859, 858, 852, 857, 850, 852, 859, 853, 858, 852, + 889, 0, 667, 670, 668, 890, 893, 671, 669, 672, + 670, 673, 671, 669, 672, 675, 895, 674, 670, 671, + 674, 672, 891, 670, 0, 673, 673, 0, 675, 899, + 675, 673, 674, 893, 671, 675, 672, 674, 673, 671, + 0, 672, 675, 895, 674, 676, 677, 674, 677, 901, + 902, 678, 673, 673, 679, 675, 899, 675, 673, 674, + 676, 905, 675, 677, 674, 676, 678, 679, 677, 679, + 0, 678, 676, 677, 679, 677, 901, 902, 678, 0, + 909, 679, 910, 0, 680, 913, 914, 676, 905, 916, + 677, 917, 676, 678, 679, 677, 679, 680, 678, 680, - 853, 856, 860, 859, 853, 860, 861, 856, 856, 860, - 861, 862, 883, 857, 884, 890, 891, 859, 858, 852, - 894, 895, 897, 859, 853, 898, 899, 901, 856, 860, - 861, 862, 902, 861, 903, 907, 909, 861, 862, 883, - 910, 884, 890, 891, 911, 912, 917, 894, 895, 897, - 918, 0, 898, 899, 901, 919, 920, 861, 862, 902, - 921, 903, 907, 909, 922, 923, 924, 910, 926, 921, - 927, 911, 912, 917, 925, 919, 920, 918, 927, 923, - 921, 925, 919, 920, 922, 923, 924, 921, 926, 929, - 927, 922, 923, 924, 925, 926, 921, 927, 928, 930, + 681, 679, 682, 0, 680, 918, 683, 909, 681, 910, + 683, 680, 913, 914, 0, 681, 916, 682, 917, 684, + 681, 0, 682, 684, 680, 683, 680, 681, 0, 682, + 683, 680, 918, 683, 0, 681, 920, 683, 684, 0, + 685, 686, 681, 684, 682, 921, 684, 681, 685, 682, + 684, 687, 683, 922, 686, 685, 686, 683, 0, 0, + 685, 686, 925, 920, 0, 684, 687, 685, 686, 0, + 684, 687, 921, 688, 0, 685, 688, 689, 687, 0, + 922, 686, 685, 686, 0, 689, 690, 685, 686, 925, + 927, 688, 689, 687, 692, 690, 688, 689, 687, 0, - 928, 925, 919, 920, 929, 927, 923, 921, 925, 929, - 932, 922, 923, 924, 934, 926, 929, 927, 935, 930, - 928, 925, 933, 936, 933, 928, 930, 928, 937, 931, - 932, 929, 931, 938, 934, 0, 929, 932, 935, 0, - 0, 934, 941, 936, 933, 935, 930, 928, 937, 933, - 936, 933, 931, 938, 939, 937, 931, 932, 940, 931, - 938, 934, 941, 939, 942, 935, 943, 944, 945, 941, - 936, 933, 947, 940, 939, 937, 0, 948, 940, 931, - 938, 939, 949, 946, 942, 940, 943, 944, 945, 941, - 939, 942, 947, 943, 944, 945, 946, 948, 0, 947, + 688, 690, 929, 688, 689, 930, 690, 0, 691, 692, + 691, 694, 689, 690, 692, 0, 931, 927, 688, 689, + 0, 692, 690, 688, 689, 691, 694, 693, 690, 929, + 691, 694, 930, 690, 693, 691, 692, 691, 694, 0, + 695, 692, 693, 931, 695, 932, 937, 693, 696, 0, + 698, 938, 691, 694, 693, 695, 1002, 691, 694, 0, + 695, 693, 1003, 696, 699, 698, 697, 695, 696, 693, + 698, 695, 932, 937, 693, 696, 697, 698, 938, 699, + 1005, 697, 695, 1002, 699, 700, 697, 695, 0, 1003, + 696, 699, 698, 697, 0, 696, 1006, 698, 0, 700, - 940, 939, 949, 946, 948, 940, 952, 953, 951, 949, - 946, 942, 951, 943, 944, 945, 954, 955, 950, 947, - 956, 0, 953, 946, 948, 950, 952, 953, 0, 949, - 946, 960, 951, 952, 953, 951, 954, 955, 950, 951, - 956, 0, 959, 954, 955, 950, 957, 956, 957, 953, - 0, 960, 950, 952, 953, 958, 959, 958, 960, 951, - 961, 962, 959, 954, 955, 950, 964, 956, 957, 959, - 965, 969, 963, 957, 965, 957, 0, 958, 960, 963, - 961, 962, 958, 959, 958, 980, 964, 961, 962, 959, - 0, 969, 963, 964, 965, 957, 966, 965, 969, 963, + 700, 701, 702, 697, 1010, 700, 699, 1005, 697, 1012, + 704, 699, 700, 697, 0, 701, 701, 702, 703, 704, + 703, 701, 702, 1006, 0, 704, 700, 700, 701, 702, + 704, 1010, 700, 1014, 0, 703, 1012, 704, 705, 0, + 703, 707, 701, 701, 702, 703, 704, 703, 701, 702, + 0, 706, 704, 705, 705, 706, 707, 704, 705, 1015, + 1014, 707, 703, 0, 708, 705, 708, 703, 707, 1018, + 706, 0, 709, 1019, 710, 706, 1021, 710, 706, 708, + 705, 705, 706, 707, 708, 705, 1015, 709, 707, 710, + 711, 708, 709, 708, 710, 0, 1018, 706, 713, 709, - 966, 965, 968, 967, 958, 967, 963, 961, 962, 0, - 981, 970, 980, 964, 971, 972, 0, 968, 969, 963, - 966, 965, 968, 966, 983, 967, 973, 966, 984, 968, - 967, 970, 967, 989, 971, 972, 974, 981, 970, 973, - 991, 971, 972, 974, 968, 992, 973, 966, 995, 968, - 996, 983, 967, 973, 999, 984, 974, 1000, 970, 1001, - 989, 971, 972, 974, 1002, 1005, 973, 991, 1006, 1007, - 974, 0, 992, 973, 1008, 995, 1011, 996, 1009, 1010, - 1011, 999, 1012, 974, 1000, 1005, 1001, 0, 1006, 1007, - 1013, 1002, 1005, 1014, 1008, 1006, 1007, 0, 1009, 1010, + 1019, 710, 706, 1021, 710, 711, 708, 712, 0, 714, + 711, 708, 1023, 713, 709, 715, 710, 711, 713, 709, + 1024, 710, 712, 712, 714, 713, 716, 712, 799, 714, + 715, 1025, 711, 1026, 712, 715, 714, 711, 0, 1023, + 713, 716, 715, 799, 800, 713, 716, 1024, 799, 712, + 712, 714, 802, 716, 712, 799, 714, 715, 1025, 800, + 1026, 801, 715, 803, 800, 804, 1062, 802, 716, 805, + 799, 800, 802, 716, 0, 799, 801, 0, 803, 802, + 804, 801, 801, 803, 805, 804, 800, 1065, 801, 805, + 803, 800, 804, 1062, 802, 0, 805, 0, 806, 802, - 1011, 1008, 1012, 1011, 1015, 1009, 1010, 1011, 1014, 1012, - 1013, 0, 1005, 1014, 1016, 1006, 1007, 1013, 1017, 1018, - 1014, 1008, 1020, 0, 1015, 1009, 1010, 1011, 1019, 1012, - 1019, 1015, 1022, 1023, 1016, 1014, 0, 1013, 1017, 1018, - 1014, 1016, 1020, 1021, 1024, 1017, 1018, 1025, 1026, 1020, - 1019, 1015, 1022, 1023, 1026, 1019, 1021, 1019, 1027, 1022, - 1023, 1016, 1025, 1021, 1024, 1017, 1018, 1025, 1026, 1020, - 1021, 1024, 1028, 1029, 1025, 1026, 1030, 1019, 1027, 1022, - 1023, 1026, 1031, 1021, 1030, 1027, 1029, 1032, 1033, 1025, - 1021, 1024, 1028, 1029, 1025, 1026, 1030, 1031, 1034, 1028, + 1066, 807, 807, 801, 809, 803, 808, 804, 801, 801, + 803, 805, 804, 806, 1065, 808, 805, 807, 806, 809, + 0, 808, 807, 811, 809, 806, 808, 1066, 807, 807, + 0, 809, 0, 808, 1068, 0, 1072, 810, 811, 812, + 806, 0, 808, 811, 807, 806, 809, 810, 808, 807, + 811, 809, 810, 808, 812, 0, 813, 810, 814, 812, + 813, 1068, 815, 1072, 810, 811, 812, 1073, 814, 815, + 811, 813, 1074, 814, 810, 1091, 813, 815, 814, 810, + 0, 812, 815, 813, 810, 814, 812, 813, 1094, 815, + 0, 816, 817, 818, 1073, 814, 815, 818, 813, 1074, - 1029, 1036, 1031, 1030, 1039, 1027, 1041, 1032, 1033, 1031, - 1044, 1030, 1045, 1029, 1032, 1033, 1046, 0, 1034, 1028, - 1029, 1048, 1061, 1030, 1031, 1034, 1050, 1049, 1036, 1031, - 1051, 1039, 1053, 1041, 1032, 1033, 1052, 1044, 1055, 1045, - 1056, 1048, 1049, 1046, 1057, 1034, 1050, 1049, 1048, 1061, - 1051, 1052, 1053, 1050, 1049, 0, 1052, 1051, 1055, 1053, - 1056, 1058, 1054, 1052, 1057, 1055, 1059, 1056, 1048, 1049, - 1059, 1057, 1058, 1050, 1049, 1054, 1060, 1051, 1052, 1053, - 1063, 1058, 1054, 1052, 1066, 1055, 1059, 1056, 1058, 1054, - 1067, 1057, 1068, 1059, 1075, 1070, 1060, 1059, 1071, 1058, + 814, 819, 1091, 813, 815, 814, 816, 817, 818, 815, + 0, 816, 817, 818, 0, 1094, 819, 820, 816, 817, + 818, 819, 1097, 0, 818, 1107, 820, 821, 819, 0, + 822, 823, 820, 816, 817, 818, 0, 820, 816, 817, + 818, 824, 821, 819, 820, 822, 823, 821, 819, 1097, + 822, 823, 1107, 820, 821, 0, 824, 822, 823, 820, + 0, 824, 0, 0, 820, 825, 826, 0, 824, 821, + 826, 0, 822, 823, 821, 828, 829, 822, 823, 825, + 825, 826, 827, 824, 827, 825, 826, 0, 824, 0, + 828, 829, 825, 826, 0, 828, 829, 826, 0, 827, - 1069, 0, 1054, 1060, 1076, 0, 1072, 1063, 1058, 1054, - 1067, 1066, 1068, 1059, 1069, 1070, 1072, 1067, 1071, 1068, - 1069, 1075, 1070, 1060, 1076, 1071, 1072, 1069, 1077, 1078, - 1080, 1076, 0, 1072, 0, 0, 0, 1067, 1078, 1068, - 0, 1069, 1070, 1072, 0, 1071, 0, 1069, 1077, 1078, - 1080, 1076, 0, 1072, 0, 1077, 1078, 1080, 0, 0, - 0, 0, 0, 0, 0, 1078, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1077, 1078, 1080, 1082, 1082, - 1082, 1082, 1082, 1083, 0, 0, 1083, 1083, 1085, 1085, - 1085, 0, 1085, 1086, 0, 1086, 1086, 1086, 1087, 0, + 830, 0, 828, 829, 827, 0, 825, 825, 826, 827, + 832, 827, 825, 826, 831, 830, 0, 828, 829, 0, + 830, 831, 828, 829, 0, 832, 827, 830, 0, 831, + 832, 827, 0, 0, 831, 833, 0, 832, 834, 833, + 834, 831, 830, 0, 0, 0, 0, 830, 831, 835, + 0, 0, 832, 834, 833, 836, 831, 832, 834, 833, + 0, 831, 833, 837, 835, 834, 833, 834, 0, 835, + 836, 0, 838, 839, 840, 836, 835, 0, 837, 0, + 834, 833, 836, 837, 0, 834, 833, 838, 839, 840, + 837, 835, 838, 839, 840, 0, 835, 836, 841, 838, - 1087, 1087, 1087, 1088, 0, 1088, 1088, 1088, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081 + 839, 840, 836, 0, 0, 837, 0, 843, 844, 0, + 837, 845, 841, 841, 838, 839, 840, 842, 841, 838, + 839, 840, 843, 844, 842, 841, 845, 843, 844, 0, + 0, 845, 842, 0, 843, 844, 0, 842, 845, 841, + 841, 846, 847, 0, 842, 841, 0, 0, 0, 843, + 844, 842, 848, 845, 843, 844, 846, 847, 845, 842, + 851, 846, 847, 0, 842, 0, 849, 848, 846, 847, + 849, 850, 848, 0, 850, 851, 0, 0, 0, 848, + 851, 0, 0, 846, 847, 849, 850, 851, 846, 847, + 849, 850, 0, 849, 848, 852, 853, 849, 850, 848, + + 0, 850, 851, 0, 854, 0, 0, 851, 0, 0, + 852, 853, 849, 850, 855, 852, 853, 849, 850, 854, + 856, 0, 852, 853, 854, 0, 0, 855, 0, 855, + 857, 854, 0, 856, 855, 856, 0, 852, 853, 0, + 856, 855, 852, 853, 858, 857, 854, 856, 858, 0, + 857, 854, 0, 859, 855, 0, 855, 857, 0, 858, + 856, 855, 856, 0, 858, 860, 861, 856, 859, 860, + 861, 858, 857, 859, 0, 858, 0, 857, 862, 862, + 859, 0, 0, 863, 860, 861, 858, 0, 0, 860, + 861, 858, 860, 861, 862, 859, 860, 861, 863, 862, + + 859, 0, 0, 863, 864, 862, 862, 0, 864, 0, + 863, 860, 861, 865, 865, 0, 860, 861, 866, 864, + 0, 862, 866, 868, 864, 863, 862, 0, 0, 865, + 863, 864, 0, 867, 865, 864, 868, 866, 868, 869, + 865, 865, 866, 868, 0, 866, 864, 867, 867, 866, + 868, 864, 0, 867, 869, 0, 865, 0, 870, 869, + 867, 865, 870, 868, 866, 868, 869, 0, 871, 866, + 868, 0, 871, 872, 867, 867, 873, 870, 0, 0, + 867, 869, 870, 0, 0, 870, 869, 871, 872, 870, + 0, 873, 871, 872, 0, 871, 873, 0, 0, 871, + + 872, 874, 874, 873, 870, 0, 875, 0, 0, 870, + 876, 0, 878, 0, 871, 872, 878, 874, 873, 871, + 872, 875, 874, 873, 0, 876, 875, 877, 874, 874, + 876, 878, 0, 875, 0, 0, 878, 876, 0, 878, + 880, 877, 877, 878, 874, 0, 879, 877, 875, 874, + 879, 939, 876, 875, 877, 880, 0, 876, 878, 0, + 880, 940, 0, 878, 0, 879, 939, 880, 877, 877, + 879, 939, 0, 879, 877, 941, 940, 879, 939, 942, + 0, 940, 880, 0, 941, 0, 0, 880, 940, 944, + 941, 0, 879, 939, 942, 941, 0, 879, 939, 942, + + 943, 0, 941, 940, 944, 0, 942, 0, 940, 944, + 0, 941, 0, 0, 943, 943, 944, 941, 945, 946, + 943, 942, 941, 0, 0, 945, 942, 943, 949, 947, + 0, 944, 0, 945, 946, 0, 944, 947, 945, 946, + 0, 943, 943, 949, 947, 945, 946, 943, 949, 947, + 0, 948, 945, 948, 950, 949, 947, 0, 0, 951, + 945, 946, 951, 0, 947, 945, 946, 0, 948, 950, + 949, 947, 952, 948, 950, 949, 947, 951, 948, 0, + 948, 950, 951, 0, 0, 0, 951, 952, 953, 951, + 953, 954, 952, 955, 0, 948, 950, 0, 0, 952, + + 948, 950, 0, 0, 951, 953, 954, 956, 955, 951, + 953, 954, 0, 955, 952, 953, 957, 953, 954, 952, + 955, 0, 956, 0, 958, 0, 0, 956, 0, 0, + 0, 957, 953, 954, 956, 955, 957, 953, 954, 958, + 955, 959, 960, 957, 958, 961, 0, 0, 0, 956, + 959, 958, 0, 0, 956, 962, 959, 960, 957, 964, + 961, 959, 960, 957, 0, 961, 958, 0, 959, 960, + 962, 958, 961, 963, 964, 962, 963, 959, 965, 964, + 0, 0, 962, 959, 960, 0, 964, 961, 959, 960, + 0, 963, 961, 965, 966, 967, 963, 962, 965, 0, + + 963, 964, 962, 963, 968, 965, 964, 0, 967, 966, + 967, 0, 969, 970, 966, 967, 0, 0, 963, 968, + 965, 966, 967, 963, 968, 965, 0, 969, 970, 973, + 0, 968, 969, 970, 0, 967, 966, 967, 971, 969, + 970, 966, 967, 972, 973, 971, 968, 972, 974, 973, + 0, 968, 0, 971, 969, 970, 973, 0, 971, 969, + 970, 0, 972, 974, 975, 971, 976, 972, 974, 0, + 972, 973, 971, 0, 972, 974, 973, 977, 0, 975, + 971, 976, 0, 0, 975, 971, 976, 981, 0, 972, + 974, 975, 977, 976, 972, 974, 0, 977, 978, 979, + + 978, 979, 981, 980, 977, 0, 975, 981, 976, 0, + 0, 975, 0, 976, 981, 978, 979, 980, 980, 977, + 978, 979, 0, 980, 977, 978, 979, 978, 979, 981, + 980, 982, 0, 0, 981, 0, 0, 984, 0, 983, + 0, 986, 978, 979, 980, 980, 982, 978, 979, 0, + 980, 982, 984, 983, 983, 985, 986, 984, 982, 983, + 0, 986, 985, 0, 984, 0, 983, 0, 986, 0, + 985, 0, 987, 982, 0, 985, 987, 0, 982, 984, + 983, 983, 985, 986, 984, 990, 983, 0, 986, 985, + 988, 987, 0, 989, 988, 989, 987, 985, 0, 987, + + 990, 0, 985, 987, 991, 990, 0, 0, 0, 988, + 989, 0, 990, 992, 988, 989, 0, 988, 987, 991, + 989, 988, 989, 987, 991, 0, 0, 990, 992, 993, + 994, 991, 990, 992, 0, 0, 988, 989, 0, 995, + 992, 988, 989, 0, 993, 994, 991, 1029, 1030, 993, + 994, 991, 995, 0, 995, 992, 993, 994, 996, 995, + 992, 0, 1029, 1030, 0, 996, 995, 1029, 1030, 0, + 0, 993, 994, 996, 1029, 1030, 993, 994, 996, 995, + 0, 995, 1031, 1032, 1033, 996, 995, 0, 0, 1029, + 1030, 0, 996, 1034, 1029, 1030, 0, 1031, 1032, 1033, + + 996, 1036, 1031, 1032, 1033, 996, 0, 1037, 1034, 1031, + 1032, 1033, 0, 1034, 1035, 0, 1036, 1038, 1035, 0, + 1034, 1036, 1037, 0, 1031, 1032, 1033, 1037, 1036, 1031, + 1032, 1033, 1038, 1035, 1037, 1034, 1039, 1038, 1035, 0, + 1034, 1035, 1040, 1036, 1038, 1035, 1041, 0, 1036, 1037, + 0, 1039, 0, 0, 1037, 0, 1039, 1040, 0, 1038, + 1035, 1041, 1040, 1039, 1038, 1035, 1041, 1042, 0, 1040, + 1043, 0, 0, 1041, 1042, 0, 0, 0, 1039, 0, + 1045, 0, 1042, 1039, 1040, 1043, 0, 1042, 1041, 1040, + 1043, 0, 0, 1041, 1042, 1045, 1044, 1043, 1044, 0, + + 1045, 1042, 0, 0, 0, 0, 1046, 1045, 0, 1042, + 0, 0, 1043, 1044, 1042, 1047, 1048, 1043, 1044, 1046, + 0, 1046, 1045, 1044, 1049, 1044, 1046, 1045, 0, 0, + 1047, 1048, 1050, 1046, 0, 1047, 1048, 0, 0, 1049, + 1044, 1052, 1047, 1048, 1049, 1044, 1046, 1050, 1046, 1051, + 1053, 1049, 1050, 1046, 0, 1051, 1052, 1047, 1048, 1050, + 1054, 1052, 1047, 1048, 1051, 1053, 1049, 0, 1052, 1051, + 1053, 1049, 0, 0, 1050, 1054, 1051, 1053, 0, 1050, + 1054, 0, 1051, 1052, 1057, 1055, 1056, 1054, 1052, 0, + 0, 1051, 1053, 0, 1056, 1058, 1051, 1053, 1055, 1057, + + 1055, 1056, 1054, 1059, 1057, 1055, 1056, 1054, 0, 1060, + 1058, 1057, 1055, 1056, 0, 1058, 0, 0, 1059, 1076, + 1077, 1056, 1058, 1059, 1060, 1055, 1057, 1055, 1056, 1060, + 1059, 1057, 1055, 1056, 1076, 1077, 1060, 1058, 1078, 1076, + 1077, 0, 1058, 0, 1079, 1059, 1076, 1077, 1080, 0, + 1059, 1060, 0, 1078, 1081, 0, 1060, 1082, 1078, 1079, + 0, 1076, 1077, 1080, 1079, 1078, 1076, 1077, 1080, 1081, + 0, 1079, 1082, 0, 1081, 1080, 0, 1082, 1084, 0, + 1078, 1081, 0, 0, 1082, 1078, 1079, 1083, 1085, 0, + 1080, 1079, 0, 1084, 0, 1080, 1081, 1086, 1084, 1082, + + 1083, 1081, 1083, 1085, 1082, 1084, 1087, 1083, 1085, 0, + 0, 0, 1086, 0, 1083, 1085, 0, 1086, 0, 0, + 1084, 1087, 0, 1090, 1086, 1084, 1087, 1083, 0, 1083, + 1085, 1088, 1089, 1087, 1083, 1085, 1089, 0, 1090, 1086, + 1098, 1099, 1088, 1090, 1086, 0, 1088, 1089, 1087, 0, + 1090, 1088, 1089, 1087, 0, 1098, 1099, 1100, 1088, 1089, + 1098, 1099, 0, 1089, 0, 1090, 1101, 1098, 1099, 1088, + 1090, 0, 1100, 1088, 1089, 1102, 1103, 1100, 1088, 1089, + 1101, 1101, 1098, 1099, 1100, 0, 1101, 1098, 1099, 0, + 1102, 1103, 0, 1101, 1108, 1102, 1103, 0, 0, 1100, + + 1104, 0, 1102, 1103, 1100, 0, 0, 1101, 1101, 1108, + 1104, 1109, 0, 1101, 1108, 1104, 0, 1102, 1103, 1110, + 1104, 1108, 1102, 1103, 0, 1112, 1109, 1104, 1110, 0, + 0, 1109, 0, 0, 1110, 0, 1108, 1104, 1109, 1110, + 1112, 1108, 1104, 0, 0, 1112, 1110, 1104, 0, 0, + 0, 0, 1112, 1109, 0, 1110, 0, 0, 1109, 0, + 0, 1110, 0, 0, 0, 0, 1110, 1112, 0, 0, + 0, 0, 1112, 1114, 1114, 1114, 1114, 1114, 1115, 0, + 0, 1115, 1115, 1117, 1117, 1117, 0, 1117, 1118, 0, + 1118, 1118, 1118, 1119, 0, 1119, 1119, 1119, 1120, 0, + + 1120, 1120, 1120, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113 } ; /* The intent behind this definition is that it'll catch @@ -1991,7 +2311,7 @@ static const flex_int16_t yy_chk[4377] = static thread_local std::stringstream strbuf; -#line 1994 "flex_lexer.cpp" +#line 2315 "flex_lexer.cpp" /*************************** ** Section 2: Rules @@ -2005,7 +2325,7 @@ static thread_local std::stringstream strbuf; /*************************** ** Section 3: Rules ***************************/ -#line 2008 "flex_lexer.cpp" +#line 2329 "flex_lexer.cpp" #define INITIAL 0 #define singlequotedstring 1 @@ -2292,7 +2612,7 @@ YY_DECL #line 56 "flex_lexer.l" -#line 2295 "flex_lexer.cpp" +#line 2616 "flex_lexer.cpp" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2319,13 +2639,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1082 ) + if ( yy_current_state >= 1114 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1081 ); + while ( yy_current_state != 1113 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -3047,113 +3367,128 @@ YY_RULE_SETUP #line 199 "flex_lexer.l" TOKEN(COMMIT) YY_BREAK -/* Allow =/== see https://sqlite.org/lang_expr.html#collateop */ case 141: YY_RULE_SETUP -#line 202 "flex_lexer.l" -TOKEN(EQUALS) +#line 200 "flex_lexer.l" +TOKEN(BTREE) YY_BREAK case 142: YY_RULE_SETUP -#line 203 "flex_lexer.l" -TOKEN(NOTEQUALS) +#line 201 "flex_lexer.l" +TOKEN(HASHTABLE) YY_BREAK case 143: YY_RULE_SETUP -#line 204 "flex_lexer.l" -TOKEN(NOTEQUALS) +#line 202 "flex_lexer.l" +TOKEN(SKIPLIST) YY_BREAK +/* Allow =/== see https://sqlite.org/lang_expr.html#collateop */ case 144: YY_RULE_SETUP #line 205 "flex_lexer.l" -TOKEN(LESSEQ) +TOKEN(EQUALS) YY_BREAK case 145: YY_RULE_SETUP #line 206 "flex_lexer.l" -TOKEN(GREATEREQ) +TOKEN(NOTEQUALS) YY_BREAK case 146: YY_RULE_SETUP #line 207 "flex_lexer.l" -TOKEN(CONCAT) +TOKEN(NOTEQUALS) YY_BREAK case 147: YY_RULE_SETUP -#line 209 "flex_lexer.l" -{ return yytext[0]; } +#line 208 "flex_lexer.l" +TOKEN(LESSEQ) YY_BREAK case 148: -#line 212 "flex_lexer.l" +YY_RULE_SETUP +#line 209 "flex_lexer.l" +TOKEN(GREATEREQ) + YY_BREAK case 149: YY_RULE_SETUP +#line 210 "flex_lexer.l" +TOKEN(CONCAT) + YY_BREAK +case 150: +YY_RULE_SETUP #line 212 "flex_lexer.l" +{ return yytext[0]; } + YY_BREAK +case 151: +#line 215 "flex_lexer.l" +case 152: +YY_RULE_SETUP +#line 215 "flex_lexer.l" { yylval->fval = atof(yytext); return SQL_FLOATVAL; } YY_BREAK -case 150: +case 153: YY_RULE_SETUP -#line 217 "flex_lexer.l" +#line 220 "flex_lexer.l" { yylval->ival = atol(yytext); return SQL_INTVAL; } YY_BREAK -case 151: +case 154: YY_RULE_SETUP -#line 222 "flex_lexer.l" +#line 225 "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 152: +case 155: YY_RULE_SETUP -#line 228 "flex_lexer.l" +#line 231 "flex_lexer.l" { yylval->sval = strdup(yytext); return SQL_IDENTIFIER; } YY_BREAK -case 153: -YY_RULE_SETUP -#line 233 "flex_lexer.l" -{ BEGIN singlequotedstring; strbuf = std::stringstream{}; } - YY_BREAK -case 154: -YY_RULE_SETUP -#line 234 "flex_lexer.l" -{ strbuf << '\''; } - YY_BREAK -case 155: -/* rule 155 can match eol */ -YY_RULE_SETUP -#line 235 "flex_lexer.l" -{ strbuf << yytext; } - YY_BREAK case 156: YY_RULE_SETUP #line 236 "flex_lexer.l" -{ BEGIN 0; yylval->sval = strdup(strbuf.str().c_str()); return SQL_STRING; } - YY_BREAK -case YY_STATE_EOF(singlequotedstring): -#line 237 "flex_lexer.l" -{ fprintf(stderr, "[SQL-Lexer-Error] Unterminated string\n"); return 0; } +{ BEGIN singlequotedstring; strbuf = std::stringstream{}; } YY_BREAK case 157: YY_RULE_SETUP -#line 239 "flex_lexer.l" -{ fprintf(stderr, "[SQL-Lexer-Error] Unknown Character: %c\n", yytext[0]); return 0; } +#line 237 "flex_lexer.l" +{ strbuf << '\''; } YY_BREAK case 158: +/* rule 158 can match eol */ +YY_RULE_SETUP +#line 238 "flex_lexer.l" +{ strbuf << yytext; } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 239 "flex_lexer.l" +{ BEGIN 0; yylval->sval = strdup(strbuf.str().c_str()); return SQL_STRING; } + YY_BREAK +case YY_STATE_EOF(singlequotedstring): +#line 240 "flex_lexer.l" +{ fprintf(stderr, "[SQL-Lexer-Error] Unterminated string\n"); return 0; } + YY_BREAK +case 160: YY_RULE_SETUP #line 242 "flex_lexer.l" +{ fprintf(stderr, "[SQL-Lexer-Error] Unknown Character: %c\n", yytext[0]); return 0; } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 245 "flex_lexer.l" ECHO; YY_BREAK -#line 3156 "flex_lexer.cpp" +#line 3492 "flex_lexer.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(COMMENT): yyterminate(); @@ -3454,7 +3789,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 >= 1082 ) + if ( yy_current_state >= 1114 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -3483,11 +3818,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 >= 1082 ) + if ( yy_current_state >= 1114 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1081); + yy_is_jam = (yy_current_state == 1113); (void)yyg; return yy_is_jam ? 0 : yy_current_state; @@ -4310,7 +4645,7 @@ void yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 242 "flex_lexer.l" +#line 245 "flex_lexer.l" /*************************** ** Section 3: User code diff --git a/src/parser/flex_lexer.h b/src/parser/flex_lexer.h index dbe1dd1..5239522 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 5 "flex_lexer.h" +#line 6 "flex_lexer.h" -#line 7 "flex_lexer.h" +#line 8 "flex_lexer.h" #define YY_INT_ALIGNED short int @@ -730,9 +730,9 @@ extern int yylex \ #undef yyTABLES_NAME #endif -#line 242 "flex_lexer.l" +#line 245 "flex_lexer.l" -#line 736 "flex_lexer.h" +#line 737 "flex_lexer.h" #undef hsql_IN_HEADER #endif /* hsql_HEADER_H */ diff --git a/src/sql/InsertStatement.h b/src/sql/InsertStatement.h index da8e56b..adc318e 100755 --- a/src/sql/InsertStatement.h +++ b/src/sql/InsertStatement.h @@ -20,7 +20,7 @@ namespace hsql { char* schema; char* tableName; std::vector* columns; - std::vector* values; + std::vector*>* values; SelectStatement* select; }; diff --git a/src/sql/statements.cpp b/src/sql/statements.cpp index da7762b..2e3e8e3 100755 --- a/src/sql/statements.cpp +++ b/src/sql/statements.cpp @@ -226,12 +226,12 @@ namespace hsql { delete columns; } - if (values != nullptr) { - for (Expr* expr : *values) { - delete expr; - } - delete values; - } + //if (values != nullptr) { + // for (Expr* expr : *values) { + // delete expr; + // } + // delete values; + //} } // ShowStatament diff --git a/src/util/sqlhelper.cpp b/src/util/sqlhelper.cpp index e31ff78..9406877 100755 --- a/src/util/sqlhelper.cpp +++ b/src/util/sqlhelper.cpp @@ -300,8 +300,10 @@ namespace hsql { switch (stmt->type) { case kInsertValues: inprint("Values", numIndent + 1); - for (Expr* expr : *stmt->values) { - printExpression(expr, numIndent + 2); + for (auto* values : *stmt->values) { + for (Expr* expr : *values) { + printExpression(expr, numIndent + 2); + } } break; case kInsertSelect: