diff --git a/src/parser/bison_parser.cpp b/src/parser/bison_parser.cpp index e2653d2..6db91ac 100644 --- a/src/parser/bison_parser.cpp +++ b/src/parser/bison_parser.cpp @@ -248,54 +248,59 @@ extern int hsql_debug; SQL_USING = 330, SQL_WHERE = 331, SQL_CALL = 332, - SQL_DATE = 333, - SQL_DESC = 334, - SQL_DROP = 335, - SQL_FILE = 336, - SQL_FROM = 337, - SQL_FULL = 338, - SQL_HASH = 339, - SQL_HINT = 340, - SQL_INTO = 341, - SQL_JOIN = 342, - SQL_LEFT = 343, - SQL_LIKE = 344, - SQL_LOAD = 345, - SQL_NULL = 346, - SQL_PART = 347, - SQL_PLAN = 348, - SQL_SHOW = 349, - SQL_TEXT = 350, - SQL_TIME = 351, - SQL_VIEW = 352, - SQL_WITH = 353, - SQL_ADD = 354, - SQL_ALL = 355, - SQL_AND = 356, - SQL_ASC = 357, - SQL_CSV = 358, - SQL_FOR = 359, - SQL_INT = 360, - SQL_KEY = 361, - SQL_NOT = 362, - SQL_OFF = 363, - SQL_SET = 364, - SQL_TBL = 365, - SQL_TOP = 366, - SQL_AS = 367, - SQL_BY = 368, - SQL_IF = 369, - SQL_IN = 370, - SQL_IS = 371, - SQL_OF = 372, - SQL_ON = 373, - SQL_OR = 374, - SQL_TO = 375, - SQL_EQUALS = 376, - SQL_LESS = 377, - SQL_GREATER = 378, - SQL_NOTNULL = 379, - SQL_UMINUS = 380 + SQL_CASE = 333, + SQL_DATE = 334, + SQL_DESC = 335, + SQL_DROP = 336, + SQL_ELSE = 337, + SQL_FILE = 338, + SQL_FROM = 339, + SQL_FULL = 340, + SQL_HASH = 341, + SQL_HINT = 342, + SQL_INTO = 343, + SQL_JOIN = 344, + SQL_LEFT = 345, + SQL_LIKE = 346, + SQL_LOAD = 347, + SQL_NULL = 348, + SQL_PART = 349, + SQL_PLAN = 350, + SQL_SHOW = 351, + SQL_TEXT = 352, + SQL_THEN = 353, + SQL_TIME = 354, + SQL_VIEW = 355, + SQL_WHEN = 356, + SQL_WITH = 357, + SQL_ADD = 358, + SQL_ALL = 359, + SQL_AND = 360, + SQL_ASC = 361, + SQL_CSV = 362, + SQL_END = 363, + SQL_FOR = 364, + SQL_INT = 365, + SQL_KEY = 366, + SQL_NOT = 367, + SQL_OFF = 368, + SQL_SET = 369, + SQL_TBL = 370, + SQL_TOP = 371, + SQL_AS = 372, + SQL_BY = 373, + SQL_IF = 374, + SQL_IN = 375, + SQL_IS = 376, + SQL_OF = 377, + SQL_ON = 378, + SQL_OR = 379, + SQL_TO = 380, + SQL_EQUALS = 381, + SQL_LESS = 382, + SQL_GREATER = 383, + SQL_NOTNULL = 384, + SQL_UMINUS = 385 }; #endif @@ -339,8 +344,9 @@ union HSQL_STYPE std::vector* column_vec; std::vector* update_vec; std::vector* expr_vec; + std::vector* order_vec; -#line 344 "bison_parser.cpp" /* yacc.c:355 */ +#line 350 "bison_parser.cpp" /* yacc.c:355 */ }; typedef union HSQL_STYPE HSQL_STYPE; @@ -370,7 +376,7 @@ int hsql_parse (hsql::SQLParserResult** result, yyscan_t scanner); /* Copy the second part of user declarations. */ -#line 374 "bison_parser.cpp" /* yacc.c:358 */ +#line 380 "bison_parser.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -612,23 +618,23 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 46 +#define YYFINAL 48 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 452 +#define YYLAST 457 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 146 +#define YYNTOKENS 151 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 67 +#define YYNNTS 76 /* YYNRULES -- Number of rules. */ -#define YYNRULES 146 +#define YYNRULES 172 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 261 +#define YYNSTATES 322 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 380 +#define YYMAXUTOK 385 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -640,16 +646,16 @@ 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, 132, 2, 2, - 137, 138, 130, 128, 144, 129, 139, 131, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 141, 140, - 123, 121, 124, 145, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 137, 2, 2, + 142, 143, 135, 133, 149, 134, 144, 136, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 146, 145, + 128, 126, 129, 150, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 135, 2, 136, 133, 2, 2, 2, 2, 2, + 2, 140, 2, 141, 138, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 142, 2, 143, 2, 2, 2, 2, + 2, 2, 2, 147, 2, 148, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -674,29 +680,32 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 122, 125, 126, 127, - 134 + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 127, 130, 131, 132, 139 }; #if HSQL_DEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 243, 243, 250, 251, 255, 260, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 281, 286, 294, 298, - 310, 318, 322, 332, 338, 347, 348, 352, 353, 357, - 364, 365, 366, 367, 377, 381, 393, 401, 413, 419, - 429, 430, 440, 449, 450, 454, 466, 467, 471, 472, - 476, 481, 490, 499, 500, 501, 505, 516, 517, 521, - 526, 531, 532, 536, 541, 545, 546, 549, 550, 554, - 555, 556, 561, 562, 563, 570, 571, 575, 576, 580, - 587, 588, 589, 590, 591, 595, 596, 597, 601, 602, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 621, 622, 623, 624, 625, 626, 630, 634, 635, - 639, 640, 641, 645, 650, 651, 655, 659, 664, 675, - 676, 686, 687, 693, 698, 699, 704, 714, 722, 723, - 728, 729, 733, 734, 742, 754, 755, 756, 757, 758, - 764, 770, 774, 783, 784, 789, 790 + 0, 245, 245, 252, 253, 257, 262, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 283, 288, 296, 300, + 312, 320, 324, 334, 340, 346, 356, 357, 361, 362, + 366, 373, 374, 375, 376, 386, 390, 394, 406, 414, + 426, 432, 442, 443, 453, 462, 463, 467, 479, 480, + 484, 485, 489, 499, 513, 527, 528, 529, 533, 545, + 546, 550, 554, 559, 560, 564, 569, 573, 574, 577, + 578, 582, 583, 587, 591, 592, 593, 599, 600, 604, + 605, 606, 613, 614, 618, 619, 623, 630, 631, 632, + 633, 634, 635, 639, 640, 641, 642, 643, 644, 648, + 649, 650, 654, 655, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 671, 672, 676, 677, 678, 679, 684, + 688, 689, 693, 694, 695, 696, 697, 698, 702, 706, + 710, 711, 715, 716, 717, 721, 726, 727, 731, 735, + 739, 750, 751, 761, 762, 768, 773, 774, 779, 789, + 797, 798, 803, 804, 808, 809, 817, 829, 830, 831, + 832, 833, 834, 835, 836, 837, 843, 849, 853, 862, + 863, 868, 869 }; #endif @@ -716,31 +725,34 @@ static const char *const yytname[] = "OFFSET", "RENAME", "SCHEMA", "SELECT", "SORTED", "TABLES", "UNIQUE", "UNLOAD", "UPDATE", "VALUES", "AFTER", "ALTER", "CROSS", "DELTA", "GROUP", "INDEX", "INNER", "LIMIT", "LOCAL", "MERGE", "MINUS", "ORDER", - "OUTER", "RIGHT", "TABLE", "UNION", "USING", "WHERE", "CALL", "DATE", - "DESC", "DROP", "FILE", "FROM", "FULL", "HASH", "HINT", "INTO", "JOIN", - "LEFT", "LIKE", "LOAD", "NULL", "PART", "PLAN", "SHOW", "TEXT", "TIME", - "VIEW", "WITH", "ADD", "ALL", "AND", "ASC", "CSV", "FOR", "INT", "KEY", - "NOT", "OFF", "SET", "TBL", "TOP", "AS", "BY", "IF", "IN", "IS", "OF", - "ON", "OR", "TO", "'='", "EQUALS", "'<'", "'>'", "LESS", "GREATER", - "NOTNULL", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", - "']'", "'('", "')'", "'.'", "';'", "':'", "'{'", "'}'", "','", "'?'", - "$accept", "input", "statement_list", "statement", - "preparable_statement", "prepare_statement", "execute_statement", - "import_statement", "import_file_type", "file_path", "create_statement", - "opt_not_exists", "column_def_commalist", "column_def", "column_type", - "drop_statement", "delete_statement", "truncate_statement", - "insert_statement", "opt_column_list", "update_statement", - "update_clause_commalist", "update_clause", "select_statement", - "select_with_paren", "select_no_paren", "set_operator", "select_clause", - "opt_distinct", "select_list", "from_clause", "opt_where", "opt_group", - "opt_having", "opt_order", "opt_order_type", "opt_limit", "expr_list", - "literal_list", "expr_alias", "expr", "scalar_expr", "unary_expr", - "binary_expr", "comp_expr", "function_expr", "column_name", "literal", - "string_literal", "num_literal", "int_literal", "star_expr", - "placeholder_expr", "table_ref", "table_ref_atomic", - "table_ref_commalist", "table_ref_name", "table_ref_name_no_alias", - "table_name", "alias", "opt_alias", "join_clause", "opt_join_type", - "join_table", "join_condition", "opt_semicolon", "ident_commalist", YY_NULLPTR + "OUTER", "RIGHT", "TABLE", "UNION", "USING", "WHERE", "CALL", "CASE", + "DATE", "DESC", "DROP", "ELSE", "FILE", "FROM", "FULL", "HASH", "HINT", + "INTO", "JOIN", "LEFT", "LIKE", "LOAD", "NULL", "PART", "PLAN", "SHOW", + "TEXT", "THEN", "TIME", "VIEW", "WHEN", "WITH", "ADD", "ALL", "AND", + "ASC", "CSV", "END", "FOR", "INT", "KEY", "NOT", "OFF", "SET", "TBL", + "TOP", "AS", "BY", "IF", "IN", "IS", "OF", "ON", "OR", "TO", "'='", + "EQUALS", "'<'", "'>'", "LESS", "GREATER", "NOTNULL", "'+'", "'-'", + "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", + "';'", "':'", "'{'", "'}'", "','", "'?'", "$accept", "input", + "statement_list", "statement", "preparable_statement", + "prepare_statement", "execute_statement", "import_statement", + "import_file_type", "file_path", "create_statement", "opt_not_exists", + "column_def_commalist", "column_def", "column_type", "drop_statement", + "delete_statement", "truncate_statement", "insert_statement", + "opt_column_list", "update_statement", "update_clause_commalist", + "update_clause", "select_statement", "select_with_paren", + "select_no_paren", "set_operator", "select_clause", "opt_distinct", + "select_list", "from_clause", "opt_where", "opt_group", "opt_having", + "opt_order", "order_list", "order_desc", "opt_order_type", "opt_top", + "opt_limit", "expr_list", "literal_list", "expr_alias", "expr", + "operand", "scalar_expr", "unary_expr", "binary_expr", "logic_expr", + "in_expr", "case_expr", "exists_expr", "comp_expr", "function_expr", + "between_expr", "column_name", "literal", "string_literal", + "num_literal", "int_literal", "star_expr", "placeholder_expr", + "table_ref", "table_ref_atomic", "table_ref_commalist", "table_ref_name", + "table_ref_name_no_alias", "table_name", "alias", "opt_alias", + "join_clause", "opt_join_type", "join_table", "join_condition", + "opt_semicolon", "ident_commalist", YY_NULLPTR }; #endif @@ -761,53 +773,60 @@ static const yytype_uint16 yytoknum[] = 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 61, 376, 60, 62, 377, 378, 379, 43, 45, - 42, 47, 37, 94, 380, 91, 93, 40, 41, 46, - 59, 58, 123, 125, 44, 63 + 375, 376, 377, 378, 379, 380, 61, 381, 60, 62, + 382, 383, 384, 43, 45, 42, 47, 37, 94, 385, + 91, 93, 40, 41, 46, 59, 58, 123, 125, 44, + 63 }; # endif -#define YYPACT_NINF -213 +#define YYPACT_NINF -248 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-213))) + (!!((Yystate) == (-248))) -#define YYTABLE_NINF -142 +#define YYTABLE_NINF -168 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-142))) + (!!((Yytable_value) == (-168))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 225, 3, 32, 42, 47, 18, -11, -6, 20, 88, - 32, 41, -35, 113, -20, -213, -213, -213, -213, -213, - -213, -213, -213, -213, -213, -213, -213, -213, -213, 30, - 120, -14, -213, -10, -63, 25, 32, 28, 32, -213, - 8, 31, -213, 32, 4, 14, -213, 225, -213, -213, - -213, 37, -213, -35, 89, -213, 153, 1, 241, 225, - 50, 32, 82, -213, 79, 29, -107, -213, -213, -213, - 8, 8, -213, 8, -213, 80, 23, -213, 109, -213, - -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, 171, -213, -213, -213, -213, 8, 105, 105, 170, - -213, -213, -101, -213, -213, -20, 136, -60, 8, -213, - 176, 178, -12, 88, 179, 306, -43, 40, 6, 82, - 8, -213, 8, 8, 8, 8, 8, 97, 184, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -213, - -213, 67, -51, -213, 210, 89, 89, 140, -213, 1, - 48, -213, 83, 187, 260, 106, -213, -213, -86, 57, - -213, 8, -213, -213, -35, -213, 52, 10, 12, -213, - 63, 138, -213, 319, 240, 240, 319, 306, 8, -213, - 293, 319, 240, 240, -43, -43, 69, 69, 69, -213, - 1, 171, -213, -213, -213, -213, -213, -213, 170, -213, - -213, 130, -9, -64, -213, 32, -213, 209, 1, 76, - 75, 6, -213, -213, -213, -213, -213, 128, 107, -213, - 319, -213, -213, -213, 176, -213, -213, -213, -213, -213, - -213, 187, -213, -213, -39, -213, 12, -213, 78, 7, - 8, -213, -213, -213, 61, -213, 6, -35, -213, 108, - -25, -213, 85, 8, 8, -213, 12, 260, -213, 260, - -213 + 169, 1, 53, 68, 91, -57, 19, 45, 38, 15, + 53, 37, -37, 118, -7, -248, -248, -248, -248, -248, + -248, -248, -248, -248, -248, -248, -248, -248, -248, 66, + 140, 32, -248, 5, 43, 27, 27, 53, 50, 53, + 146, 154, 72, -248, 53, 53, 52, 59, -248, 169, + -248, -248, -248, 99, -248, -37, 156, -248, 216, 13, + 202, 169, 116, 53, 53, 161, -248, 158, 102, -248, + -248, -248, 46, 242, -248, -248, -248, -248, -248, 46, + 177, 177, 146, -248, -248, -248, -248, -248, -29, -248, + -248, -248, -248, -248, -248, -7, 215, -50, 102, 46, + -248, 256, 258, 55, -104, 120, 162, 63, 20, -248, + 96, 185, 119, -248, 4, 164, -248, -248, -248, -248, + -248, -248, -248, -248, -248, -248, -248, -248, -248, 144, + -54, -248, 122, -248, 105, 156, 156, 224, -248, 13, + 126, -248, 163, 274, 168, -69, 191, -248, -248, -26, + 145, -248, 154, 283, 236, 46, 149, 20, 257, 30, + 160, 6, 2, 161, 46, -248, 46, 302, 46, -248, + -248, 20, 20, 20, 20, 20, -61, 167, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 13, 242, -248, + 46, -248, -248, -248, -248, -248, 146, -248, -248, 223, + 25, -16, -248, -37, 53, -248, 320, 13, 46, -248, + 181, -63, 236, 234, -248, -248, -37, -248, 178, 153, + 8, -248, 367, 263, -248, -248, -248, 226, 273, 286, + 286, 184, 273, 20, 186, 96, 273, 286, 286, 30, + 30, 192, 192, 192, -248, -248, -248, -248, -248, 256, + -248, -248, -248, -248, -248, -248, 274, -248, -248, -248, + 7, 10, -248, 20, 193, 195, 2, -248, -248, -248, + -248, -248, 268, 269, 240, 227, -248, 20, 273, 96, + 198, 34, -248, -248, -248, -248, 225, -248, 8, -248, + 194, -248, -248, 3, 46, 257, 199, 60, -248, -248, + 20, 243, -248, 2, -37, -248, 211, -33, -248, -248, + 244, -248, 203, 46, 46, -248, -248, 8, -69, -248, + -69, -248 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -815,57 +834,65 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, - 0, 0, 0, 0, 144, 3, 6, 5, 15, 8, - 9, 14, 11, 12, 10, 13, 7, 46, 47, 68, - 0, 128, 37, 18, 0, 26, 0, 0, 0, 57, - 0, 0, 127, 0, 0, 0, 1, 143, 2, 54, - 55, 0, 53, 0, 74, 35, 0, 0, 0, 0, - 0, 0, 62, 21, 0, 41, 108, 113, 114, 116, - 0, 0, 117, 0, 118, 0, 59, 75, 133, 81, - 82, 83, 90, 84, 85, 87, 110, 111, 115, 86, - 112, 0, 34, 49, 48, 4, 0, 68, 68, 0, - 50, 129, 0, 77, 16, 144, 0, 0, 0, 36, - 0, 0, 0, 58, 0, 89, 88, 0, 0, 62, - 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 79, 0, 62, 43, 71, 74, 74, 72, 19, 0, - 0, 25, 0, 0, 61, 0, 22, 145, 0, 0, - 39, 0, 109, 80, 0, 60, 119, 121, 133, 123, - 139, 64, 76, 102, 105, 106, 99, 97, 0, 130, - 98, 101, 103, 104, 92, 91, 94, 93, 95, 96, - 0, 0, 42, 70, 69, 67, 52, 51, 0, 78, - 17, 0, 0, 0, 27, 0, 40, 0, 0, 0, - 0, 0, 126, 135, 136, 138, 137, 0, 0, 56, - 100, 45, 44, 73, 0, 31, 32, 33, 30, 29, - 24, 0, 20, 146, 0, 107, 133, 124, 120, 0, - 0, 23, 28, 38, 132, 122, 0, 0, 141, 0, - 66, 125, 0, 0, 0, 63, 0, 142, 134, 65, - 140 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, + 0, 0, 0, 0, 170, 3, 6, 5, 15, 8, + 9, 14, 11, 12, 10, 13, 7, 48, 49, 70, + 0, 150, 39, 18, 0, 27, 27, 0, 0, 0, + 0, 60, 0, 149, 0, 0, 0, 0, 1, 169, + 2, 56, 57, 0, 55, 0, 81, 37, 0, 0, + 0, 0, 0, 0, 0, 64, 21, 0, 43, 138, + 77, 59, 0, 0, 35, 36, 51, 50, 4, 0, + 70, 70, 0, 52, 151, 135, 136, 140, 0, 84, + 132, 133, 137, 134, 16, 170, 0, 0, 43, 0, + 38, 0, 0, 0, 130, 0, 0, 0, 0, 139, + 0, 0, 61, 82, 155, 87, 94, 95, 96, 89, + 92, 91, 90, 104, 97, 88, 99, 101, 100, 0, + 64, 45, 69, 71, 76, 81, 81, 79, 19, 0, + 0, 26, 0, 0, 0, 63, 0, 22, 171, 0, + 0, 41, 60, 0, 0, 0, 0, 0, 103, 102, + 0, 0, 0, 64, 0, 153, 0, 0, 0, 154, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 0, 75, 74, 73, 54, 53, 0, 85, 17, 0, + 0, 0, 28, 0, 0, 42, 0, 0, 0, 131, + 0, 0, 0, 0, 98, 93, 0, 62, 141, 143, + 155, 145, 165, 66, 83, 113, 152, 114, 123, 126, + 127, 0, 111, 0, 0, 0, 122, 124, 125, 106, + 105, 108, 107, 109, 110, 47, 46, 72, 80, 0, + 32, 33, 34, 31, 30, 24, 0, 25, 20, 172, + 0, 0, 120, 0, 0, 0, 0, 148, 164, 163, + 157, 158, 162, 161, 0, 0, 58, 0, 112, 0, + 0, 0, 23, 29, 40, 128, 0, 121, 155, 146, + 142, 160, 159, 0, 0, 129, 0, 0, 117, 115, + 0, 154, 144, 0, 0, 167, 0, 68, 118, 116, + 0, 147, 0, 0, 0, 65, 119, 0, 168, 156, + 67, 166 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -213, -213, 165, 180, 167, -213, -213, -213, -213, 5, - -213, -213, -213, 0, -213, -213, -213, -213, -213, -213, - -213, -213, 43, -146, 17, 9, -213, 183, 131, -213, - -213, -91, -213, -213, 13, -213, -38, 16, 38, 125, - -69, -213, -213, -213, -213, -213, -213, -54, -94, -213, - -76, -213, -213, -213, -173, -213, 15, -213, -2, -212, - -142, -213, -213, 19, -213, 142, -213 + -248, -248, 288, 298, 290, -248, -248, -248, -248, 106, + -248, 321, -248, 109, -248, -248, -248, -248, -248, 270, + -248, -248, 179, -189, 42, -12, -248, 311, 219, -248, + -248, -101, -248, -248, 176, -248, 197, -248, -248, -88, + -175, 182, 210, -78, -99, -248, -248, -248, -248, -248, + -248, -248, -248, -248, -248, -248, -46, -98, -248, -36, + -248, -248, -248, -246, -248, 82, -248, 0, -247, -192, + -248, -248, 83, -248, 289, -248 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 13, 14, 15, 16, 17, 18, 19, 64, 155, - 20, 61, 203, 204, 229, 21, 22, 23, 24, 112, - 25, 142, 143, 26, 27, 28, 53, 29, 40, 75, - 119, 109, 219, 255, 54, 195, 100, 76, 102, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 165, 166, 238, 167, 41, 168, 139, - 140, 169, 217, 170, 258, 48, 158 + -1, 13, 14, 15, 16, 17, 18, 19, 67, 146, + 20, 63, 201, 202, 254, 21, 22, 23, 24, 103, + 25, 130, 131, 26, 27, 28, 55, 29, 72, 111, + 163, 100, 276, 315, 56, 132, 133, 193, 41, 83, + 112, 88, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 90, 91, 92, + 128, 93, 217, 218, 290, 219, 42, 220, 169, 170, + 221, 274, 222, 319, 50, 149 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -873,102 +900,102 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 32, 115, 116, 103, 117, 67, 68, 69, 42, 31, - 31, 66, 67, 68, 69, 121, 156, 9, 210, 225, - 254, 45, 152, 147, 244, 108, 212, 144, 171, 44, - 113, 226, 114, 30, 62, 31, 65, 148, 237, 154, - 9, 92, 49, 149, 260, 33, 159, 122, 123, 124, - 34, 192, 206, 173, 174, 175, 176, 177, 207, 107, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 97, 36, 50, 251, 230, -141, 37, 153, 58, 59, - 231, -141, -141, 122, 123, 124, 227, 135, 136, 137, - 138, 35, 209, 191, 245, 199, 228, -141, -141, 243, - 51, 252, 12, 39, 52, 149, 38, 196, 197, 220, - 145, 146, 121, 46, 43, 70, 122, 123, 124, 120, - 47, 160, 223, 55, 128, 56, -140, 57, 213, 125, - 156, 63, -140, -140, 214, 215, 221, 71, 72, 60, - 91, 126, 93, 164, 247, 73, 74, 127, -140, -140, - 96, 216, 94, 74, 103, 99, 101, 106, 108, 129, - 110, 130, 118, 131, 132, 125, 111, 120, 133, 134, - 135, 136, 137, 138, 141, 51, 69, 126, 163, 151, - 67, 157, 162, 127, 257, 259, 178, 179, 190, 198, - 202, 200, 205, 201, 208, 129, 211, 130, 125, 131, - 132, 218, 138, 232, 133, 134, 135, 136, 137, 138, - 126, 224, 233, 236, 235, 239, 127, 122, 123, 124, - 240, 128, 246, 256, 105, 104, 253, 95, 129, 241, - 130, 242, 131, 132, 222, 1, 98, 133, 134, 135, - 136, 137, 138, 2, 161, 172, 234, 150, -142, -142, - 3, 1, 0, 0, 248, 4, 250, 0, 249, 2, - 0, 0, 5, 6, 0, 0, 3, 122, 123, 124, - 0, 7, 8, 0, 0, 0, 0, 9, 5, 6, - 0, 0, 10, 0, 0, 0, 0, 7, 8, 193, - 0, 0, 0, 9, 0, 0, 0, 0, 10, 125, - 122, 123, 124, 0, 0, 11, 0, 0, 0, 0, - 0, 126, 194, 122, 123, 124, 0, 127, 0, 0, - 0, 11, 0, 0, 0, 0, 122, 123, 124, 129, - 0, 130, 0, 131, 132, 0, 0, 0, 133, 134, - 135, 136, 137, 138, 0, 0, 0, 0, 0, 125, + 47, 134, 32, 147, 70, 31, 31, 165, 158, 159, + 43, 165, 314, 89, 257, 9, 35, 85, 86, 69, + 289, 145, 99, 104, 85, 86, 69, 265, 267, 189, + 233, 30, 161, 261, 142, 263, 166, 65, 152, 68, + 153, 301, 166, 36, 74, 75, 137, 194, 195, 104, + 85, 86, 69, 250, 46, 168, 31, 311, 158, 234, + 281, 168, 223, 97, 98, 251, 104, 85, 86, 69, + 321, 33, 228, 229, 230, 231, 232, 211, 51, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 225, 105, + 227, 151, 143, 197, 34, 188, 302, 80, 160, 104, + 85, 86, 69, 37, 297, 12, 156, 9, 52, 166, + 44, 166, 134, 150, 138, 312, 164, 205, 48, 307, + 139, 167, 252, 206, 106, 167, 39, 255, 168, 38, + 168, 40, 157, 256, 278, 253, 53, 45, 49, 105, + 54, 245, 210, 57, 216, 304, 62, 59, 9, 215, + 284, 147, 69, 285, 108, 109, 139, 66, 107, 164, + 248, 89, 110, 87, 286, 183, 184, 185, 186, 71, + 87, 171, 172, 173, 106, 157, 58, 299, 295, 1, + 108, 109, -167, 164, 174, 191, 73, 2, 110, 60, + 61, 171, 172, 173, 3, 76, 87, 108, 109, 4, + 264, 310, 77, 309, 258, 110, 5, 6, 107, 164, + 166, 192, 1, 87, -167, 7, 8, 79, -167, 84, + 2, 9, 82, 280, -167, -167, 10, 3, 96, 168, + 108, 109, 171, 172, 173, 318, 320, 99, 110, 5, + 6, 101, -167, -167, 102, 129, 87, 53, 7, 8, + 11, 171, 172, 173, 9, 175, 135, 136, 141, 10, + 85, 148, 154, 155, 171, 172, 173, 296, 164, 162, + 187, 190, -166, 196, 198, 175, 176, 200, 199, 204, + 171, 172, 173, 11, 177, 203, 209, 207, 9, 277, + 178, 212, 179, 180, -168, -168, 213, 181, 182, 183, + 184, 185, 186, 214, -166, 226, 249, 300, -166, 235, + 178, 12, 179, 180, -166, -166, 175, 181, 182, 183, + 184, 185, 186, 259, 262, 233, 275, 266, 279, 293, + 186, 166, -166, -166, 313, 175, 287, 213, 288, 291, + 292, 298, 308, 303, 12, 294, 317, 78, 175, 95, + 94, 178, 316, 179, 180, 282, 213, 64, 181, 182, + 183, 184, 185, 186, 175, 283, 81, 246, 144, 213, + 178, 208, 179, 180, 224, 305, 306, 181, 182, 183, + 184, 185, 186, 178, 140, 179, 180, 247, 0, 260, + 181, 182, 183, 184, 185, 186, 268, 0, 0, 178, + 0, 179, 180, 0, 0, 0, 181, 182, 183, 184, + 185, 186, 0, 0, -168, -168, 0, 0, 0, 181, + 182, 183, 184, 185, 186, 0, 0, 0, 269, 0, + 0, 0, 270, 0, 0, 0, 0, 0, 271, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 126, 12, -142, -142, 0, 0, 127, 133, 134, - 135, 136, 137, 138, 0, 0, 0, 0, 12, 129, - 0, 130, 125, 131, 132, 0, 0, 0, 133, 134, - 135, 136, 137, 138, 126, 125, 0, 0, 0, 0, - 127, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 0, 0, 0, 127, 130, 0, 131, 132, 0, 0, - 0, 133, 134, 135, 136, 137, 138, 130, 0, 131, - 132, 0, 0, 0, 133, 134, 135, 136, 137, 138, - 130, 0, 131, 132, 0, 0, 0, 133, 134, 135, - 136, 137, 138 + 0, 0, 0, 0, 0, 0, 0, 273 }; static const yytype_int16 yycheck[] = { - 2, 70, 71, 57, 73, 4, 5, 6, 10, 3, - 3, 3, 4, 5, 6, 3, 110, 52, 164, 28, - 45, 12, 82, 99, 236, 76, 168, 96, 119, 12, - 137, 40, 139, 30, 36, 3, 38, 138, 211, 108, - 52, 43, 12, 144, 256, 3, 58, 7, 8, 9, - 3, 142, 138, 122, 123, 124, 125, 126, 144, 61, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 53, 82, 42, 246, 138, 65, 82, 137, 141, 142, - 144, 71, 72, 7, 8, 9, 95, 130, 131, 132, - 133, 73, 161, 144, 236, 149, 105, 87, 88, 138, - 70, 247, 137, 15, 74, 144, 86, 145, 146, 178, - 97, 98, 3, 0, 73, 107, 7, 8, 9, 144, - 140, 112, 198, 3, 112, 139, 65, 137, 65, 89, - 224, 103, 71, 72, 71, 72, 190, 129, 130, 114, - 109, 101, 138, 137, 137, 137, 145, 107, 87, 88, - 113, 88, 138, 145, 208, 66, 3, 107, 76, 119, - 81, 121, 82, 123, 124, 89, 137, 144, 128, 129, - 130, 131, 132, 133, 3, 70, 6, 101, 138, 43, - 4, 3, 3, 107, 253, 254, 89, 3, 121, 49, - 3, 143, 86, 110, 137, 119, 144, 121, 89, 123, - 124, 63, 133, 205, 128, 129, 130, 131, 132, 133, - 101, 81, 3, 138, 138, 87, 107, 7, 8, 9, - 113, 112, 144, 138, 59, 58, 118, 47, 119, 224, - 121, 231, 123, 124, 191, 10, 53, 128, 129, 130, - 131, 132, 133, 18, 113, 120, 208, 105, 8, 9, - 25, 10, -1, -1, 239, 30, 240, -1, 239, 18, - -1, -1, 37, 38, -1, -1, 25, 7, 8, 9, - -1, 46, 47, -1, -1, -1, -1, 52, 37, 38, - -1, -1, 57, -1, -1, -1, -1, 46, 47, 79, - -1, -1, -1, 52, -1, -1, -1, -1, 57, 89, - 7, 8, 9, -1, -1, 80, -1, -1, -1, -1, - -1, 101, 102, 7, 8, 9, -1, 107, -1, -1, - -1, 80, -1, -1, -1, -1, 7, 8, 9, 119, - -1, 121, -1, 123, 124, -1, -1, -1, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, -1, 89, + 12, 79, 2, 101, 40, 3, 3, 3, 107, 108, + 10, 3, 45, 59, 203, 52, 73, 4, 5, 6, + 266, 99, 76, 3, 4, 5, 6, 216, 220, 130, + 91, 30, 110, 208, 84, 98, 105, 37, 142, 39, + 144, 288, 105, 100, 44, 45, 82, 135, 136, 3, + 4, 5, 6, 28, 12, 124, 3, 303, 157, 120, + 235, 124, 163, 63, 64, 40, 3, 4, 5, 6, + 317, 3, 171, 172, 173, 174, 175, 155, 12, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 166, 43, + 168, 103, 142, 139, 3, 149, 288, 55, 110, 3, + 4, 5, 6, 84, 279, 142, 43, 52, 42, 105, + 73, 105, 190, 58, 143, 304, 149, 143, 0, 294, + 149, 117, 97, 149, 78, 117, 88, 143, 124, 84, + 124, 116, 112, 149, 233, 110, 70, 100, 145, 43, + 74, 187, 154, 3, 142, 142, 119, 142, 52, 143, + 143, 249, 6, 143, 134, 135, 149, 107, 112, 149, + 196, 207, 142, 150, 263, 135, 136, 137, 138, 15, + 150, 7, 8, 9, 78, 112, 144, 143, 277, 10, + 134, 135, 29, 149, 20, 80, 114, 18, 142, 146, + 147, 7, 8, 9, 25, 143, 150, 134, 135, 30, + 212, 300, 143, 143, 204, 142, 37, 38, 112, 149, + 105, 106, 10, 150, 61, 46, 47, 118, 65, 3, + 18, 52, 66, 235, 71, 72, 57, 25, 112, 124, + 134, 135, 7, 8, 9, 313, 314, 76, 142, 37, + 38, 83, 89, 90, 142, 3, 150, 70, 46, 47, + 81, 7, 8, 9, 52, 91, 80, 81, 43, 57, + 4, 3, 142, 101, 7, 8, 9, 279, 149, 84, + 126, 149, 29, 49, 148, 91, 112, 3, 115, 88, + 7, 8, 9, 81, 120, 117, 3, 142, 52, 105, + 126, 142, 128, 129, 8, 9, 112, 133, 134, 135, + 136, 137, 138, 143, 61, 3, 83, 82, 65, 142, + 126, 142, 128, 129, 71, 72, 91, 133, 134, 135, + 136, 137, 138, 3, 143, 91, 63, 149, 142, 89, + 138, 105, 89, 90, 123, 91, 143, 112, 143, 71, + 71, 143, 143, 149, 142, 118, 143, 49, 91, 61, + 60, 126, 108, 128, 129, 249, 112, 36, 133, 134, + 135, 136, 137, 138, 91, 256, 55, 188, 98, 112, + 126, 152, 128, 129, 164, 293, 293, 133, 134, 135, + 136, 137, 138, 126, 95, 128, 129, 190, -1, 207, + 133, 134, 135, 136, 137, 138, 29, -1, -1, 126, + -1, 128, 129, -1, -1, -1, 133, 134, 135, 136, + 137, 138, -1, -1, 128, 129, -1, -1, -1, 133, + 134, 135, 136, 137, 138, -1, -1, -1, 61, -1, + -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 101, 137, 123, 124, -1, -1, 107, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 137, 119, - -1, 121, 89, 123, 124, -1, -1, -1, 128, 129, - 130, 131, 132, 133, 101, 89, -1, -1, -1, -1, - 107, -1, -1, -1, -1, -1, -1, -1, 89, -1, - -1, -1, -1, 107, 121, -1, 123, 124, -1, -1, - -1, 128, 129, 130, 131, 132, 133, 121, -1, 123, - 124, -1, -1, -1, 128, 129, 130, 131, 132, 133, - 121, -1, 123, 124, -1, -1, -1, 128, 129, 130, - 131, 132, 133 + -1, -1, -1, -1, -1, -1, -1, 90 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -976,52 +1003,61 @@ static const yytype_int16 yycheck[] = static const yytype_uint8 yystos[] = { 0, 10, 18, 25, 30, 37, 38, 46, 47, 52, - 57, 80, 137, 147, 148, 149, 150, 151, 152, 153, - 156, 161, 162, 163, 164, 166, 169, 170, 171, 173, - 30, 3, 204, 3, 3, 73, 82, 82, 86, 15, - 174, 203, 204, 73, 170, 171, 0, 140, 211, 12, - 42, 70, 74, 172, 180, 3, 139, 137, 141, 142, - 114, 157, 204, 103, 154, 204, 3, 4, 5, 6, - 107, 129, 130, 137, 145, 175, 183, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 109, 204, 138, 138, 149, 113, 170, 173, 66, - 182, 3, 184, 193, 150, 148, 107, 204, 76, 177, - 81, 137, 165, 137, 139, 186, 186, 186, 82, 176, - 144, 3, 7, 8, 9, 89, 101, 107, 112, 119, - 121, 123, 124, 128, 129, 130, 131, 132, 133, 205, - 206, 3, 167, 168, 186, 180, 180, 196, 138, 144, - 211, 43, 82, 137, 186, 155, 194, 3, 212, 58, - 171, 174, 3, 138, 137, 199, 200, 202, 204, 207, - 209, 177, 185, 186, 186, 186, 186, 186, 89, 3, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 121, 144, 177, 79, 102, 181, 182, 182, 49, 193, - 143, 110, 3, 158, 159, 86, 138, 144, 137, 186, - 169, 144, 206, 65, 71, 72, 88, 208, 63, 178, - 186, 193, 168, 196, 81, 28, 40, 95, 105, 160, - 138, 144, 204, 3, 184, 138, 138, 200, 201, 87, - 113, 155, 159, 138, 205, 206, 144, 137, 202, 209, - 183, 200, 169, 118, 45, 179, 138, 186, 210, 186, - 205 + 57, 81, 142, 152, 153, 154, 155, 156, 157, 158, + 161, 166, 167, 168, 169, 171, 174, 175, 176, 178, + 30, 3, 218, 3, 3, 73, 100, 84, 84, 88, + 116, 189, 217, 218, 73, 100, 175, 176, 0, 145, + 225, 12, 42, 70, 74, 177, 185, 3, 144, 142, + 146, 147, 119, 162, 162, 218, 107, 159, 218, 6, + 210, 15, 179, 114, 218, 218, 143, 143, 154, 118, + 175, 178, 66, 190, 3, 4, 5, 150, 192, 207, + 208, 209, 210, 212, 155, 153, 112, 218, 218, 76, + 182, 83, 142, 170, 3, 43, 78, 112, 134, 135, + 142, 180, 191, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 211, 3, + 172, 173, 186, 187, 194, 185, 185, 210, 143, 149, + 225, 43, 84, 142, 170, 194, 160, 208, 3, 226, + 58, 176, 142, 144, 142, 101, 43, 112, 195, 195, + 176, 194, 84, 181, 149, 3, 105, 117, 124, 219, + 220, 7, 8, 9, 20, 91, 112, 120, 126, 128, + 129, 133, 134, 135, 136, 137, 138, 126, 149, 182, + 149, 80, 106, 188, 190, 190, 49, 207, 148, 115, + 3, 163, 164, 117, 88, 143, 149, 142, 179, 3, + 176, 194, 142, 112, 143, 143, 142, 213, 214, 216, + 218, 221, 223, 182, 193, 194, 3, 194, 195, 195, + 195, 195, 195, 91, 120, 142, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 207, 173, 187, 210, 83, + 28, 40, 97, 110, 165, 143, 149, 174, 218, 3, + 192, 191, 143, 98, 176, 174, 149, 220, 29, 61, + 65, 71, 72, 90, 222, 63, 183, 105, 195, 142, + 176, 191, 160, 164, 143, 143, 195, 143, 143, 214, + 215, 71, 71, 89, 118, 195, 176, 191, 143, 143, + 82, 219, 220, 149, 142, 216, 223, 191, 143, 143, + 195, 214, 174, 123, 45, 184, 108, 143, 194, 224, + 194, 219 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 146, 147, 148, 148, 149, 149, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 151, 151, 152, 152, - 153, 154, 155, 156, 156, 157, 157, 158, 158, 159, - 160, 160, 160, 160, 161, 161, 162, 163, 164, 164, - 165, 165, 166, 167, 167, 168, 169, 169, 170, 170, - 171, 171, 171, 172, 172, 172, 173, 174, 174, 175, - 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, - 181, 181, 182, 182, 182, 183, 183, 184, 184, 185, - 186, 186, 186, 186, 186, 187, 187, 187, 188, 188, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 190, 190, 190, 190, 190, 190, 191, 192, 192, - 193, 193, 193, 194, 195, 195, 196, 197, 198, 199, - 199, 200, 200, 200, 201, 201, 202, 203, 204, 204, - 205, 205, 206, 206, 207, 208, 208, 208, 208, 208, - 209, 209, 210, 211, 211, 212, 212 + 0, 151, 152, 153, 153, 154, 154, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 156, 156, 157, 157, + 158, 159, 160, 161, 161, 161, 162, 162, 163, 163, + 164, 165, 165, 165, 165, 166, 166, 166, 167, 168, + 169, 169, 170, 170, 171, 172, 172, 173, 174, 174, + 175, 175, 176, 176, 176, 177, 177, 177, 178, 179, + 179, 180, 181, 182, 182, 183, 183, 184, 184, 185, + 185, 186, 186, 187, 188, 188, 188, 189, 189, 190, + 190, 190, 191, 191, 192, 192, 193, 194, 194, 194, + 194, 194, 194, 195, 195, 195, 195, 195, 195, 196, + 196, 196, 197, 197, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 199, 199, 200, 200, 200, 200, 201, + 202, 202, 203, 203, 203, 203, 203, 203, 204, 205, + 206, 206, 207, 207, 207, 208, 209, 209, 210, 211, + 212, 213, 213, 214, 214, 214, 215, 215, 216, 217, + 218, 218, 219, 219, 220, 220, 221, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 223, 223, 224, 225, + 225, 226, 226 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1029,19 +1065,22 @@ static const yytype_uint8 yyr2[] = { 0, 2, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 6, 2, 5, - 7, 1, 1, 8, 7, 3, 0, 1, 3, 2, - 1, 1, 1, 1, 3, 3, 4, 2, 8, 5, - 3, 0, 5, 1, 3, 3, 1, 1, 3, 3, - 3, 5, 5, 1, 1, 1, 6, 1, 0, 1, - 2, 2, 0, 4, 0, 2, 0, 4, 0, 1, - 1, 0, 2, 4, 0, 1, 3, 1, 3, 2, - 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 3, 3, 3, 3, 3, 3, 5, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 4, 1, 1, 3, 2, 1, 1, 3, - 2, 1, 1, 0, 6, 1, 1, 1, 1, 0, - 4, 1, 1, 1, 0, 1, 3 + 7, 1, 1, 8, 7, 7, 3, 0, 1, 3, + 2, 1, 1, 1, 1, 3, 3, 3, 4, 2, + 8, 5, 3, 0, 5, 1, 3, 3, 1, 1, + 3, 3, 3, 5, 5, 1, 1, 1, 7, 1, + 0, 1, 2, 2, 0, 4, 0, 2, 0, 3, + 0, 1, 3, 2, 1, 1, 0, 2, 0, 2, + 4, 0, 1, 3, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, + 1, 1, 2, 2, 1, 3, 3, 3, 3, 3, + 3, 3, 4, 3, 3, 5, 6, 5, 6, 8, + 4, 5, 3, 3, 3, 3, 3, 3, 5, 5, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 4, 1, 1, 3, 2, 1, + 1, 3, 2, 1, 1, 0, 6, 1, 1, 2, + 2, 1, 1, 1, 1, 0, 4, 1, 1, 1, + 0, 1, 3 }; @@ -1538,109 +1577,109 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 3: /* IDENTIFIER */ -#line 141 "bison_parser.y" /* yacc.c:1257 */ +#line 142 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1544 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1583 "bison_parser.cpp" /* yacc.c:1257 */ break; case 4: /* STRING */ -#line 141 "bison_parser.y" /* yacc.c:1257 */ +#line 142 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1550 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1589 "bison_parser.cpp" /* yacc.c:1257 */ break; case 5: /* FLOATVAL */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1556 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1595 "bison_parser.cpp" /* yacc.c:1257 */ break; case 6: /* INTVAL */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1562 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1601 "bison_parser.cpp" /* yacc.c:1257 */ break; case 7: /* NOTEQUALS */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1568 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1607 "bison_parser.cpp" /* yacc.c:1257 */ break; case 8: /* LESSEQ */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1574 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1613 "bison_parser.cpp" /* yacc.c:1257 */ break; case 9: /* GREATEREQ */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ - { } -#line 1580 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 148: /* statement_list */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).stmt_list)); } -#line 1586 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 149: /* statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).statement)); } -#line 1592 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 150: /* preparable_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).statement)); } -#line 1598 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 151: /* prepare_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).prep_stmt)); } -#line 1604 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 152: /* execute_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).exec_stmt)); } -#line 1610 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 153: /* import_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).import_stmt)); } -#line 1616 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 154: /* import_file_type */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ - { } -#line 1622 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 155: /* file_path */ #line 141 "bison_parser.y" /* yacc.c:1257 */ - { free( (((*yyvaluep).sval)) ); } -#line 1628 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 156: /* create_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).create_stmt)); } -#line 1634 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 157: /* opt_not_exists */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1640 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1619 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 158: /* column_def_commalist */ + case 153: /* statement_list */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).stmt_list)); } +#line 1625 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 154: /* statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).statement)); } +#line 1631 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 155: /* preparable_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).statement)); } +#line 1637 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 156: /* prepare_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).prep_stmt)); } +#line 1643 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 157: /* execute_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).exec_stmt)); } +#line 1649 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 158: /* import_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).import_stmt)); } +#line 1655 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 159: /* import_file_type */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ + { } +#line 1661 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 160: /* file_path */ #line 142 "bison_parser.y" /* yacc.c:1257 */ + { free( (((*yyvaluep).sval)) ); } +#line 1667 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 161: /* create_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).create_stmt)); } +#line 1673 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 162: /* opt_not_exists */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ + { } +#line 1679 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 163: /* column_def_commalist */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).column_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).column_vec))) { @@ -1649,47 +1688,47 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).column_vec)); } -#line 1653 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1692 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 159: /* column_def */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 164: /* column_def */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).column_t)); } -#line 1659 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1698 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 160: /* column_type */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ + case 165: /* column_type */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1665 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1704 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 161: /* drop_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 166: /* drop_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).drop_stmt)); } -#line 1671 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1710 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 162: /* delete_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 167: /* delete_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).delete_stmt)); } -#line 1677 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1716 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 163: /* truncate_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 168: /* truncate_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).delete_stmt)); } -#line 1683 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1722 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 164: /* insert_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 169: /* insert_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).insert_stmt)); } -#line 1689 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1728 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 165: /* opt_column_list */ -#line 142 "bison_parser.y" /* yacc.c:1257 */ + case 170: /* opt_column_list */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).str_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).str_vec))) { @@ -1698,17 +1737,17 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).str_vec)); } -#line 1702 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1741 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 166: /* update_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 171: /* update_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).update_stmt)); } -#line 1708 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1747 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 167: /* update_clause_commalist */ -#line 142 "bison_parser.y" /* yacc.c:1257 */ + case 172: /* update_clause_commalist */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).update_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).update_vec))) { @@ -1717,47 +1756,47 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).update_vec)); } -#line 1721 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1760 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 168: /* update_clause */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 173: /* update_clause */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).update_t)); } -#line 1727 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1766 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 169: /* select_statement */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 174: /* select_statement */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1733 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1772 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 170: /* select_with_paren */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 175: /* select_with_paren */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1739 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1778 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 171: /* select_no_paren */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 176: /* select_no_paren */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1745 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1784 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 173: /* select_clause */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 178: /* select_clause */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1751 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1790 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 174: /* opt_distinct */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ + case 179: /* opt_distinct */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1757 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1796 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 175: /* select_list */ -#line 142 "bison_parser.y" /* yacc.c:1257 */ + case 180: /* select_list */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -1766,53 +1805,85 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1770 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1809 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 176: /* from_clause */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 181: /* from_clause */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 1776 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1815 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 177: /* opt_where */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 182: /* opt_where */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1782 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1821 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 178: /* opt_group */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 183: /* opt_group */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).group_t)); } -#line 1788 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1827 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 179: /* opt_having */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 184: /* opt_having */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1794 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1833 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 180: /* opt_order */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 185: /* opt_order */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).order_vec)) != NULL) { + for (auto ptr : *(((*yyvaluep).order_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).order_vec)); +} +#line 1846 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 186: /* order_list */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).order_vec)) != NULL) { + for (auto ptr : *(((*yyvaluep).order_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).order_vec)); +} +#line 1859 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 187: /* order_desc */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).order)); } -#line 1800 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1865 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 181: /* opt_order_type */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ + case 188: /* opt_order_type */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1806 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1871 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 182: /* opt_limit */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 189: /* opt_top */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).limit)); } -#line 1812 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1877 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 183: /* expr_list */ -#line 142 "bison_parser.y" /* yacc.c:1257 */ + case 190: /* opt_limit */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).limit)); } +#line 1883 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 191: /* expr_list */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -1821,11 +1892,11 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1825 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1896 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 184: /* literal_list */ -#line 142 "bison_parser.y" /* yacc.c:1257 */ + case 192: /* literal_list */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -1834,107 +1905,143 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1838 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1909 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 185: /* expr_alias */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 193: /* expr_alias */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1844 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1915 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 186: /* expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 194: /* expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1850 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1921 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 187: /* scalar_expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 195: /* operand */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1856 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1927 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 188: /* unary_expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 196: /* scalar_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1862 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1933 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 189: /* binary_expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 197: /* unary_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1868 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1939 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 190: /* comp_expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 198: /* binary_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1874 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1945 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 191: /* function_expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 199: /* logic_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1880 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1951 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 192: /* column_name */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 200: /* in_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1886 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1957 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 193: /* literal */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 201: /* case_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1892 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1963 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 194: /* string_literal */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 202: /* exists_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1898 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1969 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 195: /* num_literal */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 203: /* comp_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1904 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1975 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 196: /* int_literal */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 204: /* function_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1910 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1981 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 197: /* star_expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 205: /* between_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1916 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1987 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 198: /* placeholder_expr */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 206: /* column_name */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1922 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1993 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 199: /* table_ref */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 207: /* literal */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 1999 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 208: /* string_literal */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 2005 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 209: /* num_literal */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 2011 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 210: /* int_literal */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 2017 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 211: /* star_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 2023 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 212: /* placeholder_expr */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 2029 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 213: /* table_ref */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 1928 "bison_parser.cpp" /* yacc.c:1257 */ +#line 2035 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 200: /* table_ref_atomic */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 214: /* table_ref_atomic */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 1934 "bison_parser.cpp" /* yacc.c:1257 */ +#line 2041 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 201: /* table_ref_commalist */ -#line 142 "bison_parser.y" /* yacc.c:1257 */ + case 215: /* table_ref_commalist */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).table_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).table_vec))) { @@ -1943,65 +2050,65 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).table_vec)); } -#line 1947 "bison_parser.cpp" /* yacc.c:1257 */ +#line 2054 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 202: /* table_ref_name */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 216: /* table_ref_name */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 1953 "bison_parser.cpp" /* yacc.c:1257 */ +#line 2060 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 203: /* table_ref_name_no_alias */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ + case 217: /* table_ref_name_no_alias */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 1959 "bison_parser.cpp" /* yacc.c:1257 */ +#line 2066 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 204: /* table_name */ -#line 141 "bison_parser.y" /* yacc.c:1257 */ - { free( (((*yyvaluep).sval)) ); } -#line 1965 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 205: /* alias */ -#line 141 "bison_parser.y" /* yacc.c:1257 */ - { free( (((*yyvaluep).sval)) ); } -#line 1971 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 206: /* opt_alias */ -#line 141 "bison_parser.y" /* yacc.c:1257 */ - { free( (((*yyvaluep).sval)) ); } -#line 1977 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 207: /* join_clause */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).table)); } -#line 1983 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 208: /* opt_join_type */ -#line 140 "bison_parser.y" /* yacc.c:1257 */ - { } -#line 1989 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 209: /* join_table */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).table)); } -#line 1995 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 210: /* join_condition */ -#line 150 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).expr)); } -#line 2001 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 212: /* ident_commalist */ + case 218: /* table_name */ #line 142 "bison_parser.y" /* yacc.c:1257 */ + { free( (((*yyvaluep).sval)) ); } +#line 2072 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 219: /* alias */ +#line 142 "bison_parser.y" /* yacc.c:1257 */ + { free( (((*yyvaluep).sval)) ); } +#line 2078 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 220: /* opt_alias */ +#line 142 "bison_parser.y" /* yacc.c:1257 */ + { free( (((*yyvaluep).sval)) ); } +#line 2084 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 221: /* join_clause */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).table)); } +#line 2090 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 222: /* opt_join_type */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ + { } +#line 2096 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 223: /* join_table */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).table)); } +#line 2102 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 224: /* join_condition */ +#line 151 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 2108 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 226: /* ident_commalist */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).str_vec)) != NULL) { for (auto ptr : *(((*yyvaluep).str_vec))) { @@ -2010,7 +2117,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).str_vec)); } -#line 2014 "bison_parser.cpp" /* yacc.c:1257 */ +#line 2121 "bison_parser.cpp" /* yacc.c:1257 */ break; @@ -2129,7 +2236,7 @@ YYLTYPE yylloc = yyloc_default; yylloc.placeholder_id = 0; } -#line 2133 "bison_parser.cpp" /* yacc.c:1429 */ +#line 2240 "bison_parser.cpp" /* yacc.c:1429 */ yylsp[0] = yylloc; goto yysetstate; @@ -2316,764 +2423,885 @@ yyreduce: switch (yyn) { case 2: -#line 243 "bison_parser.y" /* yacc.c:1646 */ +#line 245 "bison_parser.y" /* yacc.c:1646 */ { *result = (yyvsp[-1].stmt_list); } -#line 2324 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2431 "bison_parser.cpp" /* yacc.c:1646 */ break; case 3: -#line 250 "bison_parser.y" /* yacc.c:1646 */ +#line 252 "bison_parser.y" /* yacc.c:1646 */ { (yyval.stmt_list) = new SQLParserResult((yyvsp[0].statement)); } -#line 2330 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2437 "bison_parser.cpp" /* yacc.c:1646 */ break; case 4: -#line 251 "bison_parser.y" /* yacc.c:1646 */ +#line 253 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].stmt_list)->addStatement((yyvsp[0].statement)); (yyval.stmt_list) = (yyvsp[-2].stmt_list); } -#line 2336 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2443 "bison_parser.cpp" /* yacc.c:1646 */ break; case 5: -#line 255 "bison_parser.y" /* yacc.c:1646 */ +#line 257 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[0].prep_stmt)->setPlaceholders(yyloc.placeholder_list); yyloc.placeholder_list.clear(); (yyval.statement) = (yyvsp[0].prep_stmt); } -#line 2346 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2453 "bison_parser.cpp" /* yacc.c:1646 */ break; case 7: -#line 265 "bison_parser.y" /* yacc.c:1646 */ +#line 267 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].select_stmt); } -#line 2352 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2459 "bison_parser.cpp" /* yacc.c:1646 */ break; case 8: -#line 266 "bison_parser.y" /* yacc.c:1646 */ +#line 268 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].import_stmt); } -#line 2358 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2465 "bison_parser.cpp" /* yacc.c:1646 */ break; case 9: -#line 267 "bison_parser.y" /* yacc.c:1646 */ +#line 269 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].create_stmt); } -#line 2364 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2471 "bison_parser.cpp" /* yacc.c:1646 */ break; case 10: -#line 268 "bison_parser.y" /* yacc.c:1646 */ +#line 270 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].insert_stmt); } -#line 2370 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2477 "bison_parser.cpp" /* yacc.c:1646 */ break; case 11: -#line 269 "bison_parser.y" /* yacc.c:1646 */ +#line 271 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 2376 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2483 "bison_parser.cpp" /* yacc.c:1646 */ break; case 12: -#line 270 "bison_parser.y" /* yacc.c:1646 */ +#line 272 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 2382 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2489 "bison_parser.cpp" /* yacc.c:1646 */ break; case 13: -#line 271 "bison_parser.y" /* yacc.c:1646 */ +#line 273 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].update_stmt); } -#line 2388 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2495 "bison_parser.cpp" /* yacc.c:1646 */ break; case 14: -#line 272 "bison_parser.y" /* yacc.c:1646 */ +#line 274 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].drop_stmt); } -#line 2394 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2501 "bison_parser.cpp" /* yacc.c:1646 */ break; case 15: -#line 273 "bison_parser.y" /* yacc.c:1646 */ +#line 275 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].exec_stmt); } -#line 2400 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2507 "bison_parser.cpp" /* yacc.c:1646 */ break; case 16: -#line 281 "bison_parser.y" /* yacc.c:1646 */ +#line 283 "bison_parser.y" /* yacc.c:1646 */ { (yyval.prep_stmt) = new PrepareStatement(); (yyval.prep_stmt)->name = (yyvsp[-2].sval); (yyval.prep_stmt)->query = new SQLParserResult((yyvsp[0].statement)); } -#line 2410 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2517 "bison_parser.cpp" /* yacc.c:1646 */ break; case 17: -#line 286 "bison_parser.y" /* yacc.c:1646 */ +#line 288 "bison_parser.y" /* yacc.c:1646 */ { (yyval.prep_stmt) = new PrepareStatement(); (yyval.prep_stmt)->name = (yyvsp[-4].sval); (yyval.prep_stmt)->query = (yyvsp[-2].stmt_list); } -#line 2420 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2527 "bison_parser.cpp" /* yacc.c:1646 */ break; case 18: -#line 294 "bison_parser.y" /* yacc.c:1646 */ +#line 296 "bison_parser.y" /* yacc.c:1646 */ { (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[0].sval); } -#line 2429 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2536 "bison_parser.cpp" /* yacc.c:1646 */ break; case 19: -#line 298 "bison_parser.y" /* yacc.c:1646 */ +#line 300 "bison_parser.y" /* yacc.c:1646 */ { (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[-3].sval); (yyval.exec_stmt)->parameters = (yyvsp[-1].expr_vec); } -#line 2439 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2546 "bison_parser.cpp" /* yacc.c:1646 */ break; case 20: -#line 310 "bison_parser.y" /* yacc.c:1646 */ +#line 312 "bison_parser.y" /* yacc.c:1646 */ { (yyval.import_stmt) = new ImportStatement((ImportStatement::ImportType) (yyvsp[-4].uval)); (yyval.import_stmt)->filePath = (yyvsp[-2].sval); (yyval.import_stmt)->tableName = (yyvsp[0].sval); } -#line 2449 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2556 "bison_parser.cpp" /* yacc.c:1646 */ break; case 21: -#line 318 "bison_parser.y" /* yacc.c:1646 */ +#line 320 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = ImportStatement::kImportCSV; } -#line 2455 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2562 "bison_parser.cpp" /* yacc.c:1646 */ break; case 22: -#line 322 "bison_parser.y" /* yacc.c:1646 */ +#line 324 "bison_parser.y" /* yacc.c:1646 */ { (yyval.sval) = strdup((yyvsp[0].expr)->name); delete (yyvsp[0].expr); } -#line 2461 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2568 "bison_parser.cpp" /* yacc.c:1646 */ break; case 23: -#line 332 "bison_parser.y" /* yacc.c:1646 */ +#line 334 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(CreateStatement::kTableFromTbl); (yyval.create_stmt)->ifNotExists = (yyvsp[-5].bval); (yyval.create_stmt)->tableName = (yyvsp[-4].sval); (yyval.create_stmt)->filePath = (yyvsp[0].sval); } -#line 2472 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2579 "bison_parser.cpp" /* yacc.c:1646 */ break; case 24: -#line 338 "bison_parser.y" /* yacc.c:1646 */ +#line 340 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(CreateStatement::kTable); (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); (yyval.create_stmt)->tableName = (yyvsp[-3].sval); (yyval.create_stmt)->columns = (yyvsp[-1].column_vec); } -#line 2483 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2590 "bison_parser.cpp" /* yacc.c:1646 */ break; case 25: -#line 347 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.bval) = true; } -#line 2489 "bison_parser.cpp" /* yacc.c:1646 */ +#line 346 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.create_stmt) = new CreateStatement(CreateStatement::kView); + (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); + (yyval.create_stmt)->tableName = (yyvsp[-3].sval); + (yyval.create_stmt)->viewColumns = (yyvsp[-2].str_vec); + (yyval.create_stmt)->select = (yyvsp[0].select_stmt); + } +#line 2602 "bison_parser.cpp" /* yacc.c:1646 */ break; case 26: -#line 348 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.bval) = false; } -#line 2495 "bison_parser.cpp" /* yacc.c:1646 */ +#line 356 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.bval) = true; } +#line 2608 "bison_parser.cpp" /* yacc.c:1646 */ break; case 27: -#line 352 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } -#line 2501 "bison_parser.cpp" /* yacc.c:1646 */ +#line 357 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.bval) = false; } +#line 2614 "bison_parser.cpp" /* yacc.c:1646 */ break; case 28: -#line 353 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } -#line 2507 "bison_parser.cpp" /* yacc.c:1646 */ +#line 361 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } +#line 2620 "bison_parser.cpp" /* yacc.c:1646 */ break; case 29: -#line 357 "bison_parser.y" /* yacc.c:1646 */ - { - (yyval.column_t) = new ColumnDefinition((yyvsp[-1].sval), (ColumnDefinition::DataType) (yyvsp[0].uval)); - } -#line 2515 "bison_parser.cpp" /* yacc.c:1646 */ +#line 362 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } +#line 2626 "bison_parser.cpp" /* yacc.c:1646 */ break; case 30: -#line 364 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = ColumnDefinition::INT; } -#line 2521 "bison_parser.cpp" /* yacc.c:1646 */ +#line 366 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.column_t) = new ColumnDefinition((yyvsp[-1].sval), (ColumnDefinition::DataType) (yyvsp[0].uval)); + } +#line 2634 "bison_parser.cpp" /* yacc.c:1646 */ break; case 31: -#line 365 "bison_parser.y" /* yacc.c:1646 */ +#line 373 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = ColumnDefinition::INT; } -#line 2527 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2640 "bison_parser.cpp" /* yacc.c:1646 */ break; case 32: -#line 366 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = ColumnDefinition::DOUBLE; } -#line 2533 "bison_parser.cpp" /* yacc.c:1646 */ +#line 374 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = ColumnDefinition::INT; } +#line 2646 "bison_parser.cpp" /* yacc.c:1646 */ break; case 33: -#line 367 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = ColumnDefinition::TEXT; } -#line 2539 "bison_parser.cpp" /* yacc.c:1646 */ +#line 375 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = ColumnDefinition::DOUBLE; } +#line 2652 "bison_parser.cpp" /* yacc.c:1646 */ break; case 34: -#line 377 "bison_parser.y" /* yacc.c:1646 */ +#line 376 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = ColumnDefinition::TEXT; } +#line 2658 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 35: +#line 386 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(DropStatement::kTable); (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 2548 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2667 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 35: -#line 381 "bison_parser.y" /* yacc.c:1646 */ + case 36: +#line 390 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.drop_stmt) = new DropStatement(DropStatement::kView); + (yyval.drop_stmt)->name = (yyvsp[0].sval); + } +#line 2676 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 37: +#line 394 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(DropStatement::kPreparedStatement); (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 2557 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2685 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 36: -#line 393 "bison_parser.y" /* yacc.c:1646 */ + case 38: +#line 406 "bison_parser.y" /* yacc.c:1646 */ { (yyval.delete_stmt) = new DeleteStatement(); (yyval.delete_stmt)->tableName = (yyvsp[-1].sval); (yyval.delete_stmt)->expr = (yyvsp[0].expr); } -#line 2567 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2695 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 37: -#line 401 "bison_parser.y" /* yacc.c:1646 */ + case 39: +#line 414 "bison_parser.y" /* yacc.c:1646 */ { (yyval.delete_stmt) = new DeleteStatement(); (yyval.delete_stmt)->tableName = (yyvsp[0].sval); } -#line 2576 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2704 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 38: -#line 413 "bison_parser.y" /* yacc.c:1646 */ + case 40: +#line 426 "bison_parser.y" /* yacc.c:1646 */ { (yyval.insert_stmt) = new InsertStatement(InsertStatement::kInsertValues); (yyval.insert_stmt)->tableName = (yyvsp[-5].sval); (yyval.insert_stmt)->columns = (yyvsp[-4].str_vec); (yyval.insert_stmt)->values = (yyvsp[-1].expr_vec); } -#line 2587 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2715 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 39: -#line 419 "bison_parser.y" /* yacc.c:1646 */ + case 41: +#line 432 "bison_parser.y" /* yacc.c:1646 */ { (yyval.insert_stmt) = new InsertStatement(InsertStatement::kInsertSelect); (yyval.insert_stmt)->tableName = (yyvsp[-2].sval); (yyval.insert_stmt)->columns = (yyvsp[-1].str_vec); (yyval.insert_stmt)->select = (yyvsp[0].select_stmt); } -#line 2598 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 40: -#line 429 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.str_vec) = (yyvsp[-1].str_vec); } -#line 2604 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 41: -#line 430 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.str_vec) = NULL; } -#line 2610 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2726 "bison_parser.cpp" /* yacc.c:1646 */ break; case 42: -#line 440 "bison_parser.y" /* yacc.c:1646 */ +#line 442 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.str_vec) = (yyvsp[-1].str_vec); } +#line 2732 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 43: +#line 443 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.str_vec) = NULL; } +#line 2738 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 44: +#line 453 "bison_parser.y" /* yacc.c:1646 */ { (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 2621 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 43: -#line 449 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.update_vec) = new std::vector(); (yyval.update_vec)->push_back((yyvsp[0].update_t)); } -#line 2627 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 44: -#line 450 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); (yyval.update_vec) = (yyvsp[-2].update_vec); } -#line 2633 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2749 "bison_parser.cpp" /* yacc.c:1646 */ break; case 45: -#line 454 "bison_parser.y" /* yacc.c:1646 */ +#line 462 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.update_vec) = new std::vector(); (yyval.update_vec)->push_back((yyvsp[0].update_t)); } +#line 2755 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 46: +#line 463 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); (yyval.update_vec) = (yyvsp[-2].update_vec); } +#line 2761 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 47: +#line 467 "bison_parser.y" /* yacc.c:1646 */ { (yyval.update_t) = new UpdateClause(); (yyval.update_t)->column = (yyvsp[-2].sval); (yyval.update_t)->value = (yyvsp[0].expr); } -#line 2643 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 48: -#line 471 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 2649 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 49: -#line 472 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 2655 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2771 "bison_parser.cpp" /* yacc.c:1646 */ break; case 50: -#line 476 "bison_parser.y" /* yacc.c:1646 */ - { - (yyval.select_stmt) = (yyvsp[-2].select_stmt); - (yyval.select_stmt)->order = (yyvsp[-1].order); - (yyval.select_stmt)->limit = (yyvsp[0].limit); - } -#line 2665 "bison_parser.cpp" /* yacc.c:1646 */ +#line 484 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } +#line 2777 "bison_parser.cpp" /* yacc.c:1646 */ break; case 51: -#line 481 "bison_parser.y" /* yacc.c:1646 */ +#line 485 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } +#line 2783 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 52: +#line 489 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.select_stmt) = (yyvsp[-2].select_stmt); + (yyval.select_stmt)->order = (yyvsp[-1].order_vec); + + // Limit could have been set by TOP. + if ((yyvsp[0].limit) != NULL) { + delete (yyval.select_stmt)->limit; + (yyval.select_stmt)->limit = (yyvsp[0].limit); + } + } +#line 2798 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 53: +#line 499 "bison_parser.y" /* yacc.c:1646 */ { // TODO: allow multiple unions (through linked list) // TODO: capture type of set_operator // TODO: might overwrite order and limit of first select here (yyval.select_stmt) = (yyvsp[-4].select_stmt); (yyval.select_stmt)->unionSelect = (yyvsp[-2].select_stmt); - (yyval.select_stmt)->order = (yyvsp[-1].order); - (yyval.select_stmt)->limit = (yyvsp[0].limit); + (yyval.select_stmt)->order = (yyvsp[-1].order_vec); + + // Limit could have been set by TOP. + if ((yyvsp[0].limit) != NULL) { + delete (yyval.select_stmt)->limit; + (yyval.select_stmt)->limit = (yyvsp[0].limit); + } } -#line 2679 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2817 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 52: -#line 490 "bison_parser.y" /* yacc.c:1646 */ + case 54: +#line 513 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-4].select_stmt); (yyval.select_stmt)->unionSelect = (yyvsp[-2].select_stmt); - (yyval.select_stmt)->order = (yyvsp[-1].order); - (yyval.select_stmt)->limit = (yyvsp[0].limit); + (yyval.select_stmt)->order = (yyvsp[-1].order_vec); + + // Limit could have been set by TOP. + if ((yyvsp[0].limit) != NULL) { + delete (yyval.select_stmt)->limit; + (yyval.select_stmt)->limit = (yyvsp[0].limit); + } } -#line 2690 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2833 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 56: -#line 505 "bison_parser.y" /* yacc.c:1646 */ + case 58: +#line 533 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = new SelectStatement(); + (yyval.select_stmt)->limit = (yyvsp[-5].limit); (yyval.select_stmt)->selectDistinct = (yyvsp[-4].bval); (yyval.select_stmt)->selectList = (yyvsp[-3].expr_vec); (yyval.select_stmt)->fromTable = (yyvsp[-2].table); (yyval.select_stmt)->whereClause = (yyvsp[-1].expr); (yyval.select_stmt)->groupBy = (yyvsp[0].group_t); } -#line 2703 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2847 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 57: -#line 516 "bison_parser.y" /* yacc.c:1646 */ + case 59: +#line 545 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = true; } -#line 2709 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 58: -#line 517 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.bval) = false; } -#line 2715 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2853 "bison_parser.cpp" /* yacc.c:1646 */ break; case 60: -#line 526 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.table) = (yyvsp[0].table); } -#line 2721 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 61: -#line 531 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2727 "bison_parser.cpp" /* yacc.c:1646 */ +#line 546 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.bval) = false; } +#line 2859 "bison_parser.cpp" /* yacc.c:1646 */ break; case 62: -#line 532 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2733 "bison_parser.cpp" /* yacc.c:1646 */ +#line 554 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.table) = (yyvsp[0].table); } +#line 2865 "bison_parser.cpp" /* yacc.c:1646 */ break; case 63: -#line 536 "bison_parser.y" /* yacc.c:1646 */ +#line 559 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2871 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 64: +#line 560 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2877 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 65: +#line 564 "bison_parser.y" /* yacc.c:1646 */ { (yyval.group_t) = new GroupByDescription(); (yyval.group_t)->columns = (yyvsp[-1].expr_vec); (yyval.group_t)->having = (yyvsp[0].expr); } -#line 2743 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 64: -#line 541 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.group_t) = NULL; } -#line 2749 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 65: -#line 545 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2755 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2887 "bison_parser.cpp" /* yacc.c:1646 */ break; case 66: -#line 546 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2761 "bison_parser.cpp" /* yacc.c:1646 */ +#line 569 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.group_t) = NULL; } +#line 2893 "bison_parser.cpp" /* yacc.c:1646 */ break; case 67: -#line 549 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } -#line 2767 "bison_parser.cpp" /* yacc.c:1646 */ +#line 573 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2899 "bison_parser.cpp" /* yacc.c:1646 */ break; case 68: -#line 550 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order) = NULL; } -#line 2773 "bison_parser.cpp" /* yacc.c:1646 */ +#line 574 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2905 "bison_parser.cpp" /* yacc.c:1646 */ break; case 69: -#line 554 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_type) = kOrderAsc; } -#line 2779 "bison_parser.cpp" /* yacc.c:1646 */ +#line 577 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_vec) = (yyvsp[0].order_vec); } +#line 2911 "bison_parser.cpp" /* yacc.c:1646 */ break; case 70: -#line 555 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_type) = kOrderDesc; } -#line 2785 "bison_parser.cpp" /* yacc.c:1646 */ +#line 578 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_vec) = NULL; } +#line 2917 "bison_parser.cpp" /* yacc.c:1646 */ break; case 71: -#line 556 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_type) = kOrderAsc; } -#line 2791 "bison_parser.cpp" /* yacc.c:1646 */ +#line 582 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); } +#line 2923 "bison_parser.cpp" /* yacc.c:1646 */ break; case 72: -#line 561 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } -#line 2797 "bison_parser.cpp" /* yacc.c:1646 */ +#line 583 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); } +#line 2929 "bison_parser.cpp" /* yacc.c:1646 */ break; case 73: -#line 562 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = new LimitDescription((yyvsp[-2].expr)->ival, (yyvsp[0].expr)->ival); delete (yyvsp[-2].expr); delete (yyvsp[0].expr); } -#line 2803 "bison_parser.cpp" /* yacc.c:1646 */ +#line 587 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } +#line 2935 "bison_parser.cpp" /* yacc.c:1646 */ break; case 74: -#line 563 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = NULL; } -#line 2809 "bison_parser.cpp" /* yacc.c:1646 */ +#line 591 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_type) = kOrderAsc; } +#line 2941 "bison_parser.cpp" /* yacc.c:1646 */ break; case 75: -#line 570 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 2815 "bison_parser.cpp" /* yacc.c:1646 */ +#line 592 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_type) = kOrderDesc; } +#line 2947 "bison_parser.cpp" /* yacc.c:1646 */ break; case 76: -#line 571 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 2821 "bison_parser.cpp" /* yacc.c:1646 */ +#line 593 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_type) = kOrderAsc; } +#line 2953 "bison_parser.cpp" /* yacc.c:1646 */ break; case 77: -#line 575 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 2827 "bison_parser.cpp" /* yacc.c:1646 */ +#line 599 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } +#line 2959 "bison_parser.cpp" /* yacc.c:1646 */ break; case 78: -#line 576 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 2833 "bison_parser.cpp" /* yacc.c:1646 */ +#line 600 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = NULL; } +#line 2965 "bison_parser.cpp" /* yacc.c:1646 */ break; case 79: -#line 580 "bison_parser.y" /* yacc.c:1646 */ +#line 604 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } +#line 2971 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 80: +#line 605 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[-2].expr)->ival, (yyvsp[0].expr)->ival); delete (yyvsp[-2].expr); delete (yyvsp[0].expr); } +#line 2977 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 81: +#line 606 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = NULL; } +#line 2983 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 82: +#line 613 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 2989 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 83: +#line 614 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 2995 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 84: +#line 618 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 3001 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 85: +#line 619 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 3007 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 86: +#line 623 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[-1].expr); (yyval.expr)->alias = (yyvsp[0].sval); } -#line 2842 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 80: -#line 587 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[-1].expr); } -#line 2848 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 88: -#line 601 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpUnary(Expr::UMINUS, (yyvsp[0].expr)); } -#line 2854 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 89: -#line 602 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpUnary(Expr::NOT, (yyvsp[0].expr)); } -#line 2860 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 91: -#line 607 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '-', (yyvsp[0].expr)); } -#line 2866 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 92: -#line 608 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '+', (yyvsp[0].expr)); } -#line 2872 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3016 "bison_parser.cpp" /* yacc.c:1646 */ break; case 93: -#line 609 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '/', (yyvsp[0].expr)); } -#line 2878 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 94: -#line 610 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '*', (yyvsp[0].expr)); } -#line 2884 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 95: -#line 611 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '%', (yyvsp[0].expr)); } -#line 2890 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 96: -#line 612 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '^', (yyvsp[0].expr)); } -#line 2896 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 97: -#line 613 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::AND, (yyvsp[0].expr)); } -#line 2902 "bison_parser.cpp" /* yacc.c:1646 */ +#line 639 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[-1].expr); } +#line 3022 "bison_parser.cpp" /* yacc.c:1646 */ break; case 98: -#line 614 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::OR, (yyvsp[0].expr)); } -#line 2908 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 99: -#line 615 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::LIKE, (yyvsp[0].expr)); } -#line 2914 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 100: -#line 616 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), Expr::NOT_LIKE, (yyvsp[0].expr)); } -#line 2920 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 101: -#line 621 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '=', (yyvsp[0].expr)); } -#line 2926 "bison_parser.cpp" /* yacc.c:1646 */ +#line 644 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); } +#line 3028 "bison_parser.cpp" /* yacc.c:1646 */ break; case 102: -#line 622 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::NOT_EQUALS, (yyvsp[0].expr)); } -#line 2932 "bison_parser.cpp" /* yacc.c:1646 */ +#line 654 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(Expr::UMINUS, (yyvsp[0].expr)); } +#line 3034 "bison_parser.cpp" /* yacc.c:1646 */ break; case 103: -#line 623 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '<', (yyvsp[0].expr)); } -#line 2938 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 104: -#line 624 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '>', (yyvsp[0].expr)); } -#line 2944 "bison_parser.cpp" /* yacc.c:1646 */ +#line 655 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(Expr::NOT, (yyvsp[0].expr)); } +#line 3040 "bison_parser.cpp" /* yacc.c:1646 */ break; case 105: -#line 625 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::LESS_EQ, (yyvsp[0].expr)); } -#line 2950 "bison_parser.cpp" /* yacc.c:1646 */ +#line 660 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '-', (yyvsp[0].expr)); } +#line 3046 "bison_parser.cpp" /* yacc.c:1646 */ break; case 106: -#line 626 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::GREATER_EQ, (yyvsp[0].expr)); } -#line 2956 "bison_parser.cpp" /* yacc.c:1646 */ +#line 661 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '+', (yyvsp[0].expr)); } +#line 3052 "bison_parser.cpp" /* yacc.c:1646 */ break; case 107: -#line 630 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr), (yyvsp[-2].bval)); } -#line 2962 "bison_parser.cpp" /* yacc.c:1646 */ +#line 662 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '/', (yyvsp[0].expr)); } +#line 3058 "bison_parser.cpp" /* yacc.c:1646 */ break; case 108: -#line 634 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } -#line 2968 "bison_parser.cpp" /* yacc.c:1646 */ +#line 663 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '*', (yyvsp[0].expr)); } +#line 3064 "bison_parser.cpp" /* yacc.c:1646 */ break; case 109: -#line 635 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } -#line 2974 "bison_parser.cpp" /* yacc.c:1646 */ +#line 664 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '%', (yyvsp[0].expr)); } +#line 3070 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 110: +#line 665 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '^', (yyvsp[0].expr)); } +#line 3076 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 111: +#line 666 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::LIKE, (yyvsp[0].expr)); } +#line 3082 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 112: +#line 667 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), Expr::NOT_LIKE, (yyvsp[0].expr)); } +#line 3088 "bison_parser.cpp" /* yacc.c:1646 */ break; case 113: -#line 645 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } -#line 2980 "bison_parser.cpp" /* yacc.c:1646 */ +#line 671 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::AND, (yyvsp[0].expr)); } +#line 3094 "bison_parser.cpp" /* yacc.c:1646 */ break; case 114: -#line 650 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } -#line 2986 "bison_parser.cpp" /* yacc.c:1646 */ +#line 672 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::OR, (yyvsp[0].expr)); } +#line 3100 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 115: +#line 676 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } +#line 3106 "bison_parser.cpp" /* yacc.c:1646 */ break; case 116: -#line 655 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } -#line 2992 "bison_parser.cpp" /* yacc.c:1646 */ +#line 677 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(Expr::NOT, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } +#line 3112 "bison_parser.cpp" /* yacc.c:1646 */ break; case 117: -#line 659 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new Expr(kExprStar); } -#line 2998 "bison_parser.cpp" /* yacc.c:1646 */ +#line 678 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } +#line 3118 "bison_parser.cpp" /* yacc.c:1646 */ break; case 118: -#line 664 "bison_parser.y" /* yacc.c:1646 */ +#line 679 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(Expr::NOT, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } +#line 3124 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 119: +#line 684 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeCase((yyvsp[-5].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 3130 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 120: +#line 688 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } +#line 3136 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 121: +#line 689 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(Expr::NOT, Expr::makeExists((yyvsp[-1].select_stmt))); } +#line 3142 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 122: +#line 693 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '=', (yyvsp[0].expr)); } +#line 3148 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 123: +#line 694 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::NOT_EQUALS, (yyvsp[0].expr)); } +#line 3154 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 124: +#line 695 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '<', (yyvsp[0].expr)); } +#line 3160 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 125: +#line 696 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '>', (yyvsp[0].expr)); } +#line 3166 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 126: +#line 697 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::LESS_EQ, (yyvsp[0].expr)); } +#line 3172 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 127: +#line 698 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), Expr::GREATER_EQ, (yyvsp[0].expr)); } +#line 3178 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 128: +#line 702 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } +#line 3184 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 129: +#line 706 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3190 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 130: +#line 710 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } +#line 3196 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 131: +#line 711 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } +#line 3202 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 135: +#line 721 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } +#line 3208 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 136: +#line 726 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } +#line 3214 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 138: +#line 731 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } +#line 3220 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 139: +#line 735 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new Expr(kExprStar); } +#line 3226 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 140: +#line 739 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makePlaceholder(yylloc.total_column); yyloc.placeholder_list.push_back((yyval.expr)); } -#line 3007 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3235 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 120: -#line 676 "bison_parser.y" /* yacc.c:1646 */ + case 142: +#line 751 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[0].table_vec)->push_back((yyvsp[-2].table)); auto tbl = new TableRef(kTableCrossProduct); tbl->list = (yyvsp[0].table_vec); (yyval.table) = tbl; } -#line 3018 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3246 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 122: -#line 687 "bison_parser.y" /* yacc.c:1646 */ + case 144: +#line 762 "bison_parser.y" /* yacc.c:1646 */ { auto tbl = new TableRef(kTableSelect); tbl->select = (yyvsp[-2].select_stmt); tbl->alias = (yyvsp[0].sval); (yyval.table) = tbl; } -#line 3029 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3257 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 124: -#line 698 "bison_parser.y" /* yacc.c:1646 */ + case 146: +#line 773 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); } -#line 3035 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3263 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 125: -#line 699 "bison_parser.y" /* yacc.c:1646 */ + case 147: +#line 774 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); } -#line 3041 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3269 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 126: -#line 704 "bison_parser.y" /* yacc.c:1646 */ + case 148: +#line 779 "bison_parser.y" /* yacc.c:1646 */ { auto tbl = new TableRef(kTableName); tbl->name = (yyvsp[-1].sval); tbl->alias = (yyvsp[0].sval); (yyval.table) = tbl; } -#line 3052 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3280 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 127: -#line 714 "bison_parser.y" /* yacc.c:1646 */ + case 149: +#line 789 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableName); (yyval.table)->name = (yyvsp[0].sval); } -#line 3061 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3289 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 130: -#line 728 "bison_parser.y" /* yacc.c:1646 */ + case 152: +#line 803 "bison_parser.y" /* yacc.c:1646 */ { (yyval.sval) = (yyvsp[0].sval); } -#line 3067 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3295 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 133: -#line 734 "bison_parser.y" /* yacc.c:1646 */ + case 155: +#line 809 "bison_parser.y" /* yacc.c:1646 */ { (yyval.sval) = NULL; } -#line 3073 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3301 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 134: -#line 743 "bison_parser.y" /* yacc.c:1646 */ + case 156: +#line 818 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3082,64 +3310,88 @@ yyreduce: (yyval.table)->join->right = (yyvsp[-2].table); (yyval.table)->join->condition = (yyvsp[0].expr); } -#line 3086 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3314 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 135: -#line 754 "bison_parser.y" /* yacc.c:1646 */ + case 157: +#line 829 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kJoinInner; } -#line 3092 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3320 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 136: -#line 755 "bison_parser.y" /* yacc.c:1646 */ + case 158: +#line 830 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kJoinOuter; } -#line 3098 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3326 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 137: -#line 756 "bison_parser.y" /* yacc.c:1646 */ + case 159: +#line 831 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinLeftOuter; } +#line 3332 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 160: +#line 832 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinRightOuter; } +#line 3338 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 161: +#line 833 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kJoinLeft; } -#line 3104 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3344 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 138: -#line 757 "bison_parser.y" /* yacc.c:1646 */ + case 162: +#line 834 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kJoinRight; } -#line 3110 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3350 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 139: -#line 758 "bison_parser.y" /* yacc.c:1646 */ + case 163: +#line 835 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinCross; } +#line 3356 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 164: +#line 836 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinNatural; } +#line 3362 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 165: +#line 837 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kJoinInner; } -#line 3116 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3368 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 140: -#line 764 "bison_parser.y" /* yacc.c:1646 */ + case 166: +#line 843 "bison_parser.y" /* yacc.c:1646 */ { auto tbl = new TableRef(kTableSelect); tbl->select = (yyvsp[-2].select_stmt); tbl->alias = (yyvsp[0].sval); (yyval.table) = tbl; } -#line 3127 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3379 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 145: -#line 789 "bison_parser.y" /* yacc.c:1646 */ + case 171: +#line 868 "bison_parser.y" /* yacc.c:1646 */ { (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); } -#line 3133 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3385 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 146: -#line 790 "bison_parser.y" /* yacc.c:1646 */ + case 172: +#line 869 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].str_vec)->push_back((yyvsp[0].sval)); (yyval.str_vec) = (yyvsp[-2].str_vec); } -#line 3139 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3391 "bison_parser.cpp" /* yacc.c:1646 */ break; -#line 3143 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3395 "bison_parser.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3374,7 +3626,7 @@ yyreturn: #endif return yyresult; } -#line 793 "bison_parser.y" /* yacc.c:1906 */ +#line 872 "bison_parser.y" /* yacc.c:1906 */ /********************************* ** Section 4: Additional C code diff --git a/src/parser/bison_parser.h b/src/parser/bison_parser.h index 81118e2..2790efe 100644 --- a/src/parser/bison_parser.h +++ b/src/parser/bison_parser.h @@ -153,54 +153,59 @@ extern int hsql_debug; SQL_USING = 330, SQL_WHERE = 331, SQL_CALL = 332, - SQL_DATE = 333, - SQL_DESC = 334, - SQL_DROP = 335, - SQL_FILE = 336, - SQL_FROM = 337, - SQL_FULL = 338, - SQL_HASH = 339, - SQL_HINT = 340, - SQL_INTO = 341, - SQL_JOIN = 342, - SQL_LEFT = 343, - SQL_LIKE = 344, - SQL_LOAD = 345, - SQL_NULL = 346, - SQL_PART = 347, - SQL_PLAN = 348, - SQL_SHOW = 349, - SQL_TEXT = 350, - SQL_TIME = 351, - SQL_VIEW = 352, - SQL_WITH = 353, - SQL_ADD = 354, - SQL_ALL = 355, - SQL_AND = 356, - SQL_ASC = 357, - SQL_CSV = 358, - SQL_FOR = 359, - SQL_INT = 360, - SQL_KEY = 361, - SQL_NOT = 362, - SQL_OFF = 363, - SQL_SET = 364, - SQL_TBL = 365, - SQL_TOP = 366, - SQL_AS = 367, - SQL_BY = 368, - SQL_IF = 369, - SQL_IN = 370, - SQL_IS = 371, - SQL_OF = 372, - SQL_ON = 373, - SQL_OR = 374, - SQL_TO = 375, - SQL_EQUALS = 376, - SQL_LESS = 377, - SQL_GREATER = 378, - SQL_NOTNULL = 379, - SQL_UMINUS = 380 + SQL_CASE = 333, + SQL_DATE = 334, + SQL_DESC = 335, + SQL_DROP = 336, + SQL_ELSE = 337, + SQL_FILE = 338, + SQL_FROM = 339, + SQL_FULL = 340, + SQL_HASH = 341, + SQL_HINT = 342, + SQL_INTO = 343, + SQL_JOIN = 344, + SQL_LEFT = 345, + SQL_LIKE = 346, + SQL_LOAD = 347, + SQL_NULL = 348, + SQL_PART = 349, + SQL_PLAN = 350, + SQL_SHOW = 351, + SQL_TEXT = 352, + SQL_THEN = 353, + SQL_TIME = 354, + SQL_VIEW = 355, + SQL_WHEN = 356, + SQL_WITH = 357, + SQL_ADD = 358, + SQL_ALL = 359, + SQL_AND = 360, + SQL_ASC = 361, + SQL_CSV = 362, + SQL_END = 363, + SQL_FOR = 364, + SQL_INT = 365, + SQL_KEY = 366, + SQL_NOT = 367, + SQL_OFF = 368, + SQL_SET = 369, + SQL_TBL = 370, + SQL_TOP = 371, + SQL_AS = 372, + SQL_BY = 373, + SQL_IF = 374, + SQL_IN = 375, + SQL_IS = 376, + SQL_OF = 377, + SQL_ON = 378, + SQL_OR = 379, + SQL_TO = 380, + SQL_EQUALS = 381, + SQL_LESS = 382, + SQL_GREATER = 383, + SQL_NOTNULL = 384, + SQL_UMINUS = 385 }; #endif @@ -244,8 +249,9 @@ union HSQL_STYPE std::vector* column_vec; std::vector* update_vec; std::vector* expr_vec; + std::vector* order_vec; -#line 249 "bison_parser.h" /* yacc.c:1909 */ +#line 255 "bison_parser.h" /* yacc.c:1909 */ }; typedef union HSQL_STYPE HSQL_STYPE; diff --git a/src/parser/flex_lexer.cpp b/src/parser/flex_lexer.cpp index 728a210..0da323a 100644 --- a/src/parser/flex_lexer.cpp +++ b/src/parser/flex_lexer.cpp @@ -358,8 +358,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 127 -#define YY_END_OF_BUFFER 128 +#define YY_NUM_RULES 132 +#define YY_END_OF_BUFFER 133 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -367,26 +367,26 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[894] = +static yyconst flex_int16_t yy_accept[914] = { 0, - 0, 0, 2, 2, 128, 126, 4, 4, 126, 119, - 126, 119, 119, 122, 119, 119, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 2, + 0, 0, 2, 2, 133, 131, 4, 4, 131, 124, + 131, 124, 124, 127, 124, 124, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 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, 4, 0, 0, 125, 1, 121, 120, - 122, 117, 116, 118, 124, 124, 124, 124, 124, 107, - 124, 108, 124, 124, 124, 124, 124, 124, 124, 124, + 2, 2, 2, 4, 0, 0, 130, 1, 126, 125, + 127, 122, 121, 123, 129, 129, 129, 129, 129, 112, + 129, 113, 129, 129, 129, 129, 129, 129, 129, 129, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 109, 124, 110, 111, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 112, 113, 114, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 115, 124, 124, 124, 124, 124, - 124, 124, 124, 2, 2, 2, 2, 2, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 114, 129, 115, 116, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 117, 118, + 119, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 120, 129, 129, + 129, 129, 129, 129, 129, 129, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -394,18 +394,18 @@ static yyconst flex_int16_t yy_accept[894] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 123, 120, 94, 124, 95, 124, - 124, 96, 97, 124, 124, 124, 124, 124, 124, 124, - 124, 98, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 99, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 100, 124, 124, 101, 124, 124, 124, 124, 124, 124, - 124, 124, 102, 124, 124, 103, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 104, 124, 124, - 124, 124, 105, 124, 124, 124, 106, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 128, 125, 98, 129, 99, 129, 129, 100, 101, 129, + 129, 129, 129, 129, 129, 129, 129, 102, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 103, 129, + 129, 129, 129, 129, 129, 104, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 105, 129, + 129, 106, 129, 129, 129, 129, 129, 129, 129, 129, + + 107, 129, 129, 108, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 109, 129, 129, 129, 129, + 110, 129, 129, 129, 129, 111, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -415,16 +415,17 @@ static yyconst flex_int16_t yy_accept[894] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 124, 124, 124, 124, 124, 72, 124, 124, 124, 124, - 124, 73, 124, 124, 124, 124, 74, 124, 124, 124, - 75, 124, 124, 124, 124, 124, 76, 77, 78, 124, - 124, 79, 124, 80, 124, 124, 124, 124, 124, 124, - 81, 124, 82, 83, 84, 124, 85, 124, 124, 124, - 124, 86, 124, 124, 124, 124, 124, 87, 88, 124, - 124, 124, 124, 124, 124, 124, 89, 124, 124, 124, - 124, 90, 91, 124, 124, 124, 124, 124, 124, 124, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 129, 129, 129, 129, 129, 72, 129, 73, + 129, 129, 129, 129, 74, 129, 129, 129, 129, 75, + 129, 129, 129, 76, 77, 129, 129, 129, 129, 129, + 78, 79, 80, 129, 129, 81, 129, 82, 129, 129, + 129, 129, 129, 129, 83, 129, 84, 85, 86, 129, + 87, 129, 129, 129, 129, 88, 129, 129, 129, 129, + 129, 89, 90, 129, 129, 129, 129, 129, 129, 129, - 92, 124, 124, 93, 2, 2, 2, 2, 2, 2, + 91, 129, 129, 129, 129, 92, 93, 94, 129, 129, + 129, 129, 129, 129, 129, 95, 129, 96, 129, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -432,42 +433,43 @@ static yyconst flex_int16_t yy_accept[894] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 54, 55, - 124, 124, 124, 124, 124, 124, 124, 56, 124, 124, - - 124, 57, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 58, 124, 124, 124, 59, 60, 124, 124, 124, - 124, 61, 62, 63, 64, 124, 124, 124, 65, 66, - 124, 124, 124, 124, 124, 67, 124, 124, 124, 124, - 68, 124, 124, 124, 69, 124, 124, 124, 70, 124, - 124, 71, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 129, 129, 129, 129, 129, 129, 129, 56, 129, 129, + 129, 57, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 58, 129, 129, 129, 59, 60, 129, 129, 129, + 129, 61, 62, 63, 64, 129, 129, 129, 65, 66, + 129, 129, 129, 129, 129, 67, 129, 129, 129, 129, + 68, 129, 129, 129, 69, 129, 129, 129, 70, 129, + 129, 71, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 124, 30, 124, 124, - 31, 124, 32, 124, 124, 33, 34, 124, 35, 36, - 37, 124, 38, 124, 39, 40, 124, 41, 42, 124, - 124, 43, 124, 124, 44, 124, 124, 124, 45, 124, - 46, 47, 48, 124, 49, 124, 124, 124, 50, 51, - 52, 53, 124, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 129, 30, 129, 129, + 31, 129, 32, 129, 129, 33, 34, 129, 35, 36, + 37, 129, 38, 129, 39, 40, 129, 41, 42, 129, + 129, 43, 129, 129, 44, 129, 129, 129, 45, 129, + 46, 47, 48, 129, 49, 129, 129, 129, 50, 51, + 52, 53, 129, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 14, 15, 16, 17, 18, 124, 19, 124, 20, 21, - 22, 23, 124, 24, 124, 124, 25, 26, 124, 27, - 28, 124, 124, 124, 29, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 124, 10, 124, 11, 124, 12, 124, 124, 13, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 124, 7, - 124, 8, 9, 2, 2, 2, 2, 2, 5, 6, + 14, 15, 16, 17, 18, 129, 19, 129, 20, 21, + 22, 23, 129, 24, 129, 129, 25, 26, 129, 27, + 28, 129, 129, 129, 29, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 129, 10, 129, 11, 129, 12, 129, 129, 13, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 129, 7, + + 129, 8, 9, 2, 2, 2, 2, 2, 5, 6, 2, 2, 0 - } ; static yyconst flex_int32_t yy_ec[256] = @@ -513,129 +515,131 @@ static yyconst flex_int32_t yy_meta[66] = 4, 4, 4, 4, 4 } ; -static yyconst flex_int16_t yy_base[901] = +static yyconst flex_int16_t yy_base[921] = { 0, - 0, 0, 65, 0, 400, 3573, 129, 131, 0, 3573, - 392, 390, 355, 127, 126, 348, 123, 123, 131, 177, - 112, 170, 121, 129, 183, 119, 135, 138, 136, 186, - 219, 182, 0, 194, 265, 308, 228, 230, 240, 0, - 161, 255, 347, 0, 344, 340, 337, 254, 254, 334, - 365, 423, 475, 527, 260, 575, 362, 293, 623, 299, - 231, 357, 415, 675, 723, 775, 343, 420, 825, 877, - 925, 425, 433, 271, 335, 325, 3573, 3573, 299, 291, - 281, 3573, 3573, 3573, 0, 140, 164, 281, 189, 229, - 283, 0, 303, 364, 341, 233, 252, 477, 414, 284, + 0, 0, 65, 0, 349, 3639, 129, 131, 0, 3639, + 338, 332, 310, 127, 126, 305, 123, 123, 131, 177, + 119, 170, 118, 138, 183, 119, 135, 175, 136, 199, + 219, 227, 0, 194, 270, 313, 249, 233, 223, 0, + 161, 203, 307, 0, 297, 289, 285, 239, 244, 272, + 370, 428, 480, 532, 580, 628, 271, 325, 676, 304, + 245, 383, 315, 728, 776, 828, 249, 405, 878, 930, + 978, 431, 437, 266, 270, 259, 3639, 3639, 254, 252, + 283, 3639, 3639, 3639, 0, 140, 161, 286, 307, 180, + 366, 0, 361, 340, 370, 295, 358, 478, 420, 383, - 328, 378, 479, 388, 392, 420, 424, 424, 428, 452, - 467, 0, 430, 510, 450, 470, 467, 493, 520, 534, - 494, 520, 518, 520, 531, 543, 540, 0, 543, 528, - 531, 549, 573, 567, 561, 575, 577, 570, 569, 587, - 589, 580, 609, 581, 582, 578, 622, 599, 623, 623, - 633, 634, 620, 0, 296, 265, 249, 0, 0, 244, - 241, 294, 0, 0, 0, 647, 679, 666, 669, 721, - 729, 737, 663, 753, 783, 804, 687, 791, 977, 807, - 742, 829, 844, 1027, 858, 875, 879, 903, 911, 933, - 927, 967, 893, 975, 1076, 979, 965, 935, 989, 1033, + 419, 424, 440, 444, 491, 436, 431, 435, 439, 440, + 449, 482, 473, 0, 470, 525, 474, 484, 478, 503, + 527, 545, 498, 521, 522, 529, 539, 551, 547, 0, + 550, 535, 541, 560, 578, 576, 563, 581, 581, 576, + 578, 597, 598, 590, 600, 598, 594, 592, 588, 629, + 611, 630, 632, 640, 642, 628, 0, 297, 254, 244, + 0, 0, 207, 204, 297, 0, 0, 0, 652, 674, + 678, 695, 734, 689, 763, 719, 773, 779, 774, 817, + 818, 1030, 839, 782, 830, 822, 873, 884, 1080, 890, + 874, 892, 928, 922, 936, 968, 993, 918, 1021, 1129, - 1023, 1042, 1072, 1073, 1086, 1037, 1087, 1077, 1109, 1122, - 1111, 1127, 1139, 1137, 1151, 1143, 1173, 1181, 1175, 1191, - 1209, 1197, 1199, 1234, 1235, 1230, 1247, 1245, 1284, 1271, - 1266, 1288, 1258, 1297, 3573, 207, 0, 638, 0, 641, - 638, 0, 0, 672, 670, 694, 747, 758, 763, 785, - 772, 0, 799, 809, 836, 867, 855, 857, 904, 932, - 921, 987, 993, 1003, 993, 1022, 1032, 0, 1032, 1091, - 1153, 1136, 1152, 1176, 1168, 1174, 1203, 1237, 1260, 1289, - 1296, 1279, 1290, 0, 1288, 1307, 1305, 1315, 1323, 1318, - 1305, 1309, 0, 1320, 1316, 1318, 1337, 1338, 1346, 1331, + 981, 1018, 944, 1035, 1046, 1074, 1056, 1086, 1089, 1110, + 1112, 976, 1114, 1120, 1154, 1148, 1164, 1162, 1179, 1178, + 1200, 1166, 1208, 1197, 1218, 1216, 1233, 1241, 1232, 1246, + 1254, 1271, 1256, 1290, 1285, 1296, 1295, 1306, 1287, 1320, + 3639, 201, 0, 654, 0, 656, 657, 0, 0, 676, + 690, 719, 743, 715, 717, 744, 813, 0, 831, 836, + 860, 1060, 898, 947, 937, 987, 986, 1000, 0, 1010, + 1061, 1092, 1094, 1116, 1124, 0, 1137, 1187, 1225, 1221, + 1274, 1282, 1310, 1313, 1320, 1331, 1336, 1338, 1339, 1325, + 1335, 0, 1330, 1348, 1346, 1352, 1358, 1354, 1343, 1344, - 1332, 1337, 1353, 1335, 1348, 1353, 1355, 0, 1339, 1343, - 1345, 1355, 0, 1352, 1351, 1368, 0, 1362, 1363, 1364, - 1383, 1372, 1367, 1368, 1376, 1379, 1391, 0, 201, 1396, - 1397, 1405, 1407, 1415, 1409, 1411, 1420, 1428, 1459, 1463, - 1460, 1450, 1478, 1482, 1464, 1494, 1508, 1499, 1512, 1518, - 1504, 1533, 1520, 1550, 1556, 1537, 1571, 1558, 1566, 1562, - 1574, 1587, 1604, 1615, 1590, 1616, 1625, 1640, 1644, 1648, - 1627, 1630, 1649, 1670, 1673, 1679, 1678, 1694, 1681, 1718, - 1684, 1723, 1727, 1724, 1732, 1733, 1735, 1763, 1758, 1737, - 1761, 1777, 1786, 1787, 1801, 1815, 1812, 1817, 1796, 1826, + 0, 1354, 1351, 1355, 1370, 1373, 1378, 1370, 1369, 1374, + 1388, 1370, 1386, 1390, 1392, 0, 1376, 1380, 1383, 1392, + 0, 1391, 1388, 1395, 1405, 0, 1399, 1403, 1400, 1418, + 1409, 1407, 1406, 1412, 1425, 1425, 0, 190, 1433, 1436, + 1439, 1444, 1462, 1447, 1448, 1477, 1458, 1472, 1490, 1500, + 1498, 1511, 1508, 1512, 1521, 1526, 1554, 1536, 1544, 1552, + 1565, 1570, 1575, 1562, 1576, 1588, 1598, 1606, 1600, 1629, + 1610, 1619, 1624, 1648, 1661, 1664, 1640, 1669, 1677, 1678, + 1702, 1652, 1674, 1683, 1713, 1715, 1717, 1714, 1728, 1718, + 1732, 1747, 1772, 1769, 1766, 1781, 1756, 1780, 1791, 1806, - 1829, 1840, 1830, 1851, 1861, 1855, 1863, 1869, 1879, 1880, - 1894, 1905, 1909, 1928, 1913, 1918, 1939, 1943, 1954, 1968, - 1386, 1399, 1394, 1432, 1536, 0, 1585, 1618, 1652, 1688, - 1698, 0, 1759, 1775, 1850, 1874, 0, 1906, 1916, 1916, - 0, 1924, 1926, 1937, 1954, 1976, 0, 0, 0, 1977, - 1965, 0, 1968, 0, 1968, 1966, 1963, 1970, 1974, 1989, - 0, 1982, 0, 0, 0, 1977, 0, 1986, 1997, 1993, - 1995, 0, 2013, 2012, 2000, 2004, 2013, 0, 0, 2026, - 2027, 2017, 2013, 2012, 2020, 2032, 0, 2031, 2028, 2033, - 2026, 0, 2023, 2043, 2033, 2027, 2049, 2031, 2045, 2051, + 1785, 1790, 1825, 1830, 1835, 1834, 1860, 1843, 1868, 1802, + 1859, 1864, 1874, 1889, 1893, 1903, 1897, 1914, 1912, 1929, + 1926, 1928, 1942, 1960, 1947, 1968, 1981, 1966, 1985, 1996, + 2020, 2019, 1430, 1433, 1437, 1489, 1530, 0, 1570, 0, + 1630, 1714, 1736, 1743, 0, 1781, 1835, 1860, 1922, 0, + 1973, 1973, 1972, 0, 0, 1972, 1989, 1998, 2003, 2025, + 0, 0, 0, 2028, 2014, 0, 2017, 0, 2021, 2021, + 2016, 2023, 2024, 2042, 0, 2035, 0, 0, 0, 2035, + 0, 2047, 2057, 2045, 2052, 0, 2070, 2070, 2059, 2060, + 2066, 0, 0, 2079, 2080, 2070, 2066, 2065, 2075, 2087, - 0, 2040, 2061, 0, 2062, 2066, 2065, 2067, 2071, 2076, - 2081, 2097, 2116, 2095, 2111, 2099, 2120, 2133, 2130, 2139, - 2121, 2171, 2161, 2175, 2170, 2173, 2174, 2183, 2204, 2227, - 2187, 2205, 2213, 2239, 2237, 2216, 2229, 2241, 2267, 2258, - 2253, 2269, 2270, 2293, 2281, 2311, 2292, 2303, 2307, 2321, - 2315, 2337, 2326, 2329, 2347, 2332, 2377, 2361, 2365, 2369, - 2383, 2366, 2380, 2399, 2415, 2417, 2401, 2434, 2423, 2447, - 2433, 2436, 2451, 2439, 2465, 2457, 2473, 2490, 2496, 2479, - 2501, 2518, 2507, 2519, 2529, 2531, 2530, 2535, 0, 0, - 2130, 2179, 2215, 2229, 2315, 2503, 2525, 0, 2531, 2535, + 0, 2087, 2084, 2089, 2080, 0, 0, 2077, 2095, 2085, + 2080, 2102, 2089, 2106, 2109, 0, 2095, 0, 2113, 0, + 2119, 2124, 2122, 2128, 2127, 2130, 2133, 2143, 2165, 2176, + 2152, 2181, 2178, 2184, 2186, 2215, 2187, 2197, 2221, 2232, + 2220, 2238, 2249, 2250, 2253, 2255, 2266, 2287, 2272, 2274, + 2284, 2309, 2295, 2303, 2317, 2318, 2339, 2327, 2341, 2335, + 2357, 2378, 2352, 2383, 2369, 2373, 2381, 2394, 2392, 2395, + 2406, 2423, 2411, 2427, 2446, 2432, 2435, 2456, 2457, 2440, + 2461, 2489, 2490, 2491, 2494, 2500, 2523, 2524, 2478, 2519, + 2528, 2533, 2552, 2554, 2556, 2564, 2565, 2568, 2582, 2573, - 2544, 0, 2538, 2550, 2561, 2563, 2549, 2552, 2556, 2568, - 2566, 0, 2573, 2566, 2566, 0, 0, 2568, 2584, 2571, - 2580, 0, 0, 0, 0, 2593, 2589, 2578, 0, 0, - 2595, 2583, 2585, 2601, 2599, 0, 2608, 2590, 2608, 2613, - 2599, 2602, 2602, 2622, 0, 2621, 2625, 2626, 0, 2613, - 2633, 0, 2635, 2637, 2638, 2641, 2643, 2647, 2660, 2671, - 2652, 2675, 2683, 2697, 2689, 2692, 2706, 2705, 2715, 2723, - 2734, 2740, 2737, 2759, 2738, 2746, 2769, 2775, 2777, 2774, - 2780, 2803, 2805, 2814, 2813, 2809, 2811, 2817, 2826, 2839, - 2848, 2854, 2843, 2857, 2865, 2867, 2889, 2871, 2879, 2888, + 2606, 2608, 2567, 2597, 2607, 2616, 2618, 2619, 0, 0, + 2113, 2182, 2251, 2290, 2315, 2348, 2445, 0, 2458, 2495, + 2530, 0, 2571, 2613, 2630, 2631, 2617, 2625, 2627, 2638, + 2640, 0, 2649, 2639, 2641, 0, 0, 2645, 2661, 2648, + 2657, 0, 0, 0, 0, 2674, 2668, 2657, 0, 0, + 2673, 2662, 2663, 2677, 2676, 0, 2685, 2667, 2685, 2689, + 2672, 2677, 2677, 2697, 0, 2694, 2696, 2696, 0, 2687, + 2709, 0, 2706, 2710, 2714, 2716, 2718, 2740, 2749, 2744, + 2748, 2750, 2772, 2773, 2759, 2774, 2783, 2802, 2788, 2804, + 2812, 2813, 2823, 2814, 2846, 2836, 2842, 2852, 2867, 2848, - 2897, 2913, 2922, 2923, 2911, 2934, 2951, 2945, 2937, 2953, - 2963, 2959, 2967, 2977, 2999, 2976, 2639, 0, 2640, 2650, - 2686, 2694, 0, 2731, 2768, 0, 0, 2851, 0, 0, - 0, 2900, 0, 2894, 0, 0, 2885, 0, 0, 2962, - 2982, 0, 2978, 2992, 0, 2986, 3005, 2987, 0, 3010, - 2997, 0, 0, 3006, 0, 3020, 3021, 3005, 0, 0, - 0, 0, 3014, 3025, 3029, 3030, 3031, 3041, 3053, 3042, - 3065, 3059, 3064, 3075, 3083, 3093, 3094, 3096, 3097, 3098, - 3119, 3107, 3109, 3115, 3131, 3132, 3137, 3133, 3147, 3161, - 3169, 3163, 3171, 3173, 3182, 3185, 3199, 3187, 3203, 3211, + 2857, 2876, 2858, 2886, 2881, 2890, 2902, 2911, 2912, 2920, + 2921, 2930, 2926, 2934, 2935, 2956, 2965, 2944, 2966, 2960, + 2979, 2974, 3009, 3004, 3014, 2998, 2995, 3023, 3020, 3032, + 3049, 3033, 3044, 3054, 3062, 3057, 2715, 0, 2715, 2725, + 2715, 2771, 0, 2791, 2775, 0, 0, 2849, 0, 0, + 0, 2898, 0, 2927, 0, 0, 2970, 0, 0, 3026, + 3063, 0, 3058, 3076, 0, 3058, 3078, 3063, 0, 3088, + 3073, 0, 0, 3081, 0, 3097, 3098, 3082, 0, 0, + 0, 0, 3091, 3102, 3103, 3107, 3106, 3117, 3112, 3108, + 3140, 3136, 3141, 3142, 3172, 3157, 3166, 3171, 3174, 3175, - 3215, 3217, 3225, 3240, 3239, 3241, 3251, 3253, 3255, 3269, - 0, 0, 0, 0, 0, 3031, 0, 3084, 0, 0, - 0, 0, 3150, 0, 3136, 3206, 0, 0, 3228, 0, - 0, 3234, 3248, 3257, 0, 3265, 3277, 3279, 3290, 3291, - 3305, 3293, 3294, 3295, 3307, 3319, 3323, 3331, 3333, 3335, - 3344, 3345, 3347, 3361, 3357, 3359, 3385, 3387, 3363, 3369, - 3358, 0, 3378, 0, 3384, 0, 3379, 3390, 0, 3415, - 3409, 3418, 3417, 3427, 3419, 3421, 3450, 3431, 3449, 0, - 3438, 0, 0, 3453, 3455, 3469, 3471, 3472, 0, 0, - 3481, 3484, 3573, 3548, 3552, 189, 3556, 3560, 3564, 3568 + 3176, 3180, 3190, 3205, 3206, 3208, 3211, 3209, 3214, 3239, + 3220, 3230, 3245, 3242, 3244, 3248, 3276, 3270, 3278, 3279, + 3293, 3282, 3308, 3314, 3318, 3312, 3316, 3322, 3324, 3346, + 0, 0, 0, 0, 0, 3122, 0, 3137, 0, 0, + 0, 0, 3256, 0, 3267, 3288, 0, 0, 3279, 0, + 0, 3317, 3339, 3348, 0, 3350, 3352, 3356, 3358, 3362, + 3368, 3367, 3381, 3384, 3386, 3390, 3392, 3400, 3402, 3421, + 3416, 3418, 3424, 3435, 3426, 3432, 3454, 3456, 3458, 3460, + 3415, 0, 3427, 0, 3453, 0, 3450, 3461, 0, 3475, + 3484, 3498, 3488, 3496, 3492, 3500, 3510, 3506, 3514, 0, + 3510, 0, 0, 3529, 3532, 3544, 3534, 3542, 0, 0, + 3546, 3550, 3639, 3614, 3618, 161, 3622, 3626, 3630, 3634 } ; -static yyconst flex_int16_t yy_def[901] = +static yyconst flex_int16_t yy_def[921] = { 0, - 893, 1, 893, 3, 893, 893, 893, 893, 894, 893, - 895, 893, 893, 893, 893, 893, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 897, - 897, 893, 898, 897, 899, 897, 897, 897, 897, 897, - 900, 900, 52, 52, 52, 52, 52, 52, 52, 52, + 913, 1, 913, 3, 913, 913, 913, 913, 914, 913, + 915, 913, 913, 913, 913, 913, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 917, + 917, 913, 918, 917, 919, 917, 917, 917, 917, 917, + 920, 920, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 893, 894, 895, 893, 893, 893, 893, - 893, 893, 893, 893, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + 52, 52, 52, 913, 914, 915, 913, 913, 913, 913, + 913, 913, 913, 913, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 897, 897, 898, 899, 897, 897, 897, - 897, 897, 897, 897, 897, 52, 52, 52, 52, 52, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 917, 917, 918, 919, + 917, 917, 917, 917, 917, 917, 917, 917, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, @@ -643,18 +647,18 @@ static yyconst flex_int16_t yy_def[901] = 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 893, 893, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 897, 897, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 913, 913, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 917, 917, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, @@ -664,62 +668,64 @@ static yyconst flex_int16_t yy_def[901] = 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, - 896, 896, 896, 896, 52, 52, 52, 52, 52, 52, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 896, 896, - 896, 896, 896, 52, 52, 52, 52, 52, 896, 896, - 52, 52, 0, 893, 893, 893, 893, 893, 893, 893 + 52, 52, 52, 52, 52, 52, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, + 916, 916, 916, 916, 916, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 916, 916, 916, 916, 916, 916, 916, 916, 916, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 916, 916, + + 916, 916, 916, 52, 52, 52, 52, 52, 916, 916, + 52, 52, 0, 913, 913, 913, 913, 913, 913, 913 } ; -static yyconst flex_int16_t yy_nxt[3639] = +static yyconst flex_int16_t yy_nxt[3705] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 10, 16, 17, 18, 19, 20, 21, 22, 23, 24, @@ -736,394 +742,402 @@ static yyconst flex_int16_t yy_nxt[3639] = 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 67, 67, 67, 74, 74, 74, 74, 80, 81, 82, 83, 86, 91, - 87, 110, 102, 93, 108, 116, 88, 103, 89, 111, - 109, 117, 121, 90, 118, 237, 122, 94, 119, 92, - 95, 96, 155, 74, 120, 86, 91, 87, 110, 102, - 93, 108, 116, 88, 103, 89, 111, 109, 117, 121, - 90, 118, 237, 122, 94, 119, 92, 95, 96, 97, - 104, 120, 85, 98, 131, 238, 105, 99, 123, 106, + 87, 110, 102, 93, 103, 118, 88, 111, 89, 104, + 112, 119, 123, 90, 105, 243, 124, 94, 113, 92, + 95, 96, 158, 74, 85, 86, 91, 87, 110, 102, + 93, 103, 118, 88, 111, 89, 104, 112, 119, 123, + 90, 105, 243, 124, 94, 113, 92, 95, 96, 97, + 106, 120, 244, 98, 249, 121, 107, 99, 338, 108, - 112, 241, 107, 100, 242, 132, 101, 113, 114, 329, - 134, 133, 124, 115, 135, 236, 97, 104, 125, 126, - 98, 131, 238, 105, 99, 123, 106, 112, 241, 107, - 100, 242, 132, 101, 113, 114, 127, 134, 133, 124, - 115, 135, 150, 243, 128, 125, 126, 198, 129, 329, - 151, 130, 160, 147, 158, 148, 74, 74, 149, 152, - 153, 161, 162, 127, 163, 164, 252, 166, 328, 150, - 243, 128, 74, 74, 198, 129, 166, 151, 130, 136, - 147, 137, 148, 253, 138, 149, 152, 153, 80, 81, - 183, 139, 140, 252, 166, 184, 166, 155, 74, 236, + 114, 122, 109, 100, 74, 74, 101, 115, 116, 242, + 136, 125, 338, 117, 137, 163, 97, 106, 120, 244, + 98, 249, 121, 107, 99, 126, 108, 114, 122, 109, + 100, 127, 128, 101, 115, 116, 129, 136, 125, 133, + 117, 137, 155, 156, 130, 153, 164, 165, 131, 161, + 134, 132, 126, 154, 166, 167, 135, 337, 127, 128, + 242, 203, 79, 129, 77, 169, 133, 74, 74, 155, + 156, 130, 153, 241, 150, 131, 151, 134, 132, 152, + 154, 169, 168, 135, 138, 169, 139, 169, 203, 140, + 80, 81, 169, 163, 194, 162, 141, 142, 158, 74, - 244, 161, 162, 166, 239, 191, 136, 79, 137, 166, - 253, 138, 240, 192, 245, 166, 260, 183, 139, 140, - 141, 142, 184, 166, 143, 197, 246, 244, 144, 166, - 77, 239, 191, 247, 145, 166, 166, 146, 235, 240, - 192, 245, 166, 260, 165, 160, 159, 141, 142, 158, - 154, 143, 197, 246, 261, 144, 166, 250, 84, 166, - 247, 145, 166, 79, 146, 154, 154, 251, 154, 154, - 154, 154, 154, 199, 154, 154, 154, 200, 166, 166, - 167, 261, 168, 201, 250, 189, 166, 248, 169, 249, - 170, 190, 262, 166, 251, 171, 78, 77, 166, 893, + 195, 150, 161, 151, 164, 165, 152, 169, 169, 245, + 157, 138, 169, 139, 169, 84, 140, 246, 79, 247, + 169, 194, 248, 141, 142, 143, 144, 195, 258, 145, + 202, 207, 146, 147, 169, 208, 245, 196, 78, 148, + 169, 169, 149, 77, 246, 197, 247, 169, 913, 248, + 913, 169, 143, 144, 913, 258, 145, 202, 207, 146, + 147, 169, 208, 254, 196, 255, 148, 169, 169, 149, + 157, 157, 197, 157, 157, 157, 157, 157, 169, 157, + 157, 157, 913, 250, 252, 170, 256, 171, 169, 259, + 254, 253, 255, 172, 913, 173, 257, 251, 913, 204, - 199, 893, 893, 893, 200, 166, 166, 167, 893, 168, - 201, 267, 189, 893, 248, 169, 249, 170, 190, 262, - 166, 268, 171, 154, 154, 166, 154, 154, 154, 154, - 154, 202, 154, 154, 154, 203, 215, 231, 267, 172, - 216, 166, 893, 258, 259, 232, 269, 270, 268, 166, - 271, 166, 233, 234, 272, 893, 166, 277, 202, 173, - 893, 166, 203, 215, 231, 893, 172, 216, 166, 166, - 258, 259, 232, 269, 270, 282, 166, 271, 166, 233, - 234, 272, 273, 166, 277, 274, 173, 174, 166, 254, - 283, 166, 275, 263, 255, 264, 166, 276, 893, 265, + 174, 913, 913, 205, 913, 913, 913, 913, 913, 206, + 250, 252, 170, 256, 171, 266, 259, 913, 253, 169, + 172, 220, 173, 257, 251, 221, 204, 174, 157, 157, + 205, 157, 157, 157, 157, 157, 206, 157, 157, 157, + 913, 169, 266, 237, 175, 267, 169, 169, 220, 264, + 265, 238, 221, 169, 268, 269, 239, 240, 270, 275, + 276, 277, 278, 913, 176, 913, 279, 169, 169, 913, + 237, 175, 267, 169, 169, 280, 264, 265, 238, 913, + 169, 268, 269, 239, 240, 270, 275, 276, 277, 278, + 260, 176, 177, 279, 169, 261, 169, 285, 283, 290, - 256, 175, 282, 284, 176, 177, 266, 257, 893, 273, - 285, 166, 274, 893, 174, 893, 254, 283, 166, 275, - 263, 255, 264, 290, 276, 278, 265, 256, 175, 893, - 284, 176, 177, 266, 257, 279, 893, 285, 166, 178, - 280, 281, 286, 179, 287, 291, 288, 180, 289, 292, - 290, 293, 278, 181, 294, 295, 182, 296, 297, 298, - 299, 300, 279, 166, 893, 893, 178, 280, 281, 286, - 179, 287, 291, 288, 180, 289, 292, 893, 293, 305, - 181, 294, 295, 182, 296, 297, 298, 299, 300, 301, - 166, 166, 303, 302, 306, 185, 309, 304, 310, 311, + 169, 262, 280, 284, 291, 271, 178, 272, 263, 179, + 180, 273, 281, 913, 292, 282, 169, 260, 274, 177, + 293, 913, 261, 169, 285, 283, 290, 298, 262, 913, + 284, 291, 271, 178, 272, 263, 179, 180, 273, 281, + 286, 292, 282, 169, 181, 274, 299, 293, 182, 294, + 287, 295, 183, 300, 298, 288, 289, 296, 184, 297, + 301, 185, 302, 303, 304, 305, 306, 286, 169, 913, + 307, 181, 308, 299, 913, 182, 294, 287, 295, 183, + 300, 313, 288, 289, 296, 184, 297, 301, 185, 302, + 303, 304, 305, 306, 309, 169, 169, 307, 310, 308, - 307, 186, 312, 313, 187, 316, 305, 188, 308, 317, - 318, 166, 893, 893, 321, 893, 301, 893, 166, 303, - 302, 306, 185, 309, 304, 310, 311, 307, 186, 312, - 313, 187, 316, 314, 188, 308, 317, 318, 166, 166, - 193, 321, 319, 322, 315, 320, 323, 194, 195, 324, - 326, 327, 893, 196, 421, 893, 893, 422, 893, 166, - 314, 423, 325, 166, 893, 893, 166, 193, 893, 319, - 322, 315, 320, 323, 194, 195, 324, 326, 327, 166, - 196, 421, 166, 166, 422, 166, 166, 204, 423, 325, - 166, 166, 332, 893, 330, 166, 893, 331, 424, 166, + 314, 311, 317, 186, 315, 187, 312, 318, 313, 319, + 188, 320, 316, 321, 324, 189, 169, 913, 325, 326, + 327, 309, 913, 169, 322, 310, 330, 314, 311, 317, + 186, 315, 187, 312, 318, 323, 319, 188, 320, 316, + 321, 324, 189, 169, 169, 325, 326, 327, 190, 328, + 331, 322, 329, 330, 191, 332, 333, 192, 335, 336, + 193, 913, 323, 913, 169, 913, 913, 913, 169, 334, + 433, 169, 434, 913, 913, 190, 328, 331, 913, 329, + 435, 191, 332, 333, 192, 335, 336, 193, 169, 339, + 169, 169, 169, 198, 169, 169, 334, 433, 913, 434, - 333, 205, 166, 166, 425, 166, 166, 206, 207, 166, - 166, 166, 166, 893, 204, 166, 893, 426, 166, 332, - 345, 330, 166, 166, 331, 424, 166, 333, 205, 166, - 166, 425, 166, 334, 206, 207, 335, 166, 166, 166, - 208, 893, 166, 336, 426, 166, 893, 345, 209, 893, - 166, 893, 210, 166, 337, 211, 893, 166, 166, 166, - 334, 427, 893, 335, 166, 166, 166, 208, 338, 166, - 336, 893, 166, 166, 353, 209, 339, 893, 166, 210, - 166, 337, 211, 340, 166, 166, 166, 212, 427, 166, - 428, 166, 166, 893, 429, 338, 166, 430, 213, 166, + 199, 200, 436, 345, 913, 169, 201, 435, 913, 340, + 169, 169, 169, 913, 169, 169, 339, 169, 341, 169, + 198, 169, 913, 913, 437, 169, 342, 199, 200, 436, + 345, 169, 169, 201, 913, 169, 340, 169, 169, 169, + 209, 169, 438, 913, 169, 341, 343, 441, 442, 344, + 169, 437, 169, 342, 210, 169, 443, 439, 169, 440, + 211, 212, 169, 913, 169, 913, 913, 209, 913, 438, + 169, 169, 913, 343, 441, 442, 344, 169, 913, 169, + 346, 210, 169, 443, 439, 913, 440, 211, 212, 169, + 352, 169, 169, 213, 347, 169, 348, 169, 169, 169, - 166, 353, 431, 339, 214, 166, 341, 166, 342, 893, - 340, 166, 893, 893, 212, 432, 166, 428, 166, 166, - 343, 429, 346, 166, 430, 213, 166, 166, 893, 431, - 344, 214, 433, 341, 166, 342, 351, 352, 166, 217, - 166, 218, 432, 166, 219, 166, 166, 343, 434, 346, - 166, 220, 221, 893, 166, 354, 893, 344, 355, 433, - 166, 166, 893, 351, 352, 166, 217, 166, 218, 437, - 166, 219, 166, 438, 166, 434, 893, 893, 220, 221, - 166, 360, 354, 435, 893, 355, 893, 166, 166, 222, - 223, 166, 166, 224, 166, 166, 437, 225, 436, 893, + 353, 214, 350, 349, 351, 215, 169, 346, 216, 169, + 169, 913, 169, 913, 362, 169, 169, 352, 169, 169, + 213, 347, 169, 348, 913, 169, 169, 353, 214, 350, + 349, 351, 215, 169, 169, 216, 169, 169, 169, 169, + 217, 362, 169, 444, 169, 169, 169, 445, 913, 355, + 354, 218, 364, 169, 169, 169, 363, 219, 169, 446, + 169, 169, 913, 913, 169, 169, 169, 217, 360, 361, + 444, 169, 447, 169, 445, 169, 355, 354, 218, 364, + 169, 169, 169, 363, 219, 169, 446, 913, 365, 169, + 169, 169, 222, 169, 223, 360, 361, 224, 366, 447, - 438, 166, 893, 226, 361, 362, 227, 166, 360, 166, - 435, 166, 893, 166, 893, 166, 222, 223, 166, 166, - 224, 166, 166, 893, 225, 436, 363, 166, 893, 166, - 226, 361, 362, 227, 893, 439, 166, 364, 166, 166, - 166, 166, 166, 166, 893, 440, 166, 166, 441, 166, - 228, 166, 229, 363, 166, 230, 166, 366, 893, 365, - 367, 166, 439, 166, 364, 893, 166, 893, 166, 166, - 166, 377, 440, 893, 166, 441, 166, 228, 166, 229, - 893, 166, 230, 166, 366, 376, 365, 367, 166, 347, - 166, 166, 368, 166, 348, 166, 166, 369, 377, 442, + 169, 913, 169, 372, 225, 226, 169, 913, 169, 169, + 169, 913, 450, 371, 169, 365, 169, 169, 373, 222, + 169, 223, 913, 913, 224, 366, 169, 169, 169, 913, + 372, 225, 226, 169, 169, 169, 169, 169, 169, 450, + 371, 169, 227, 228, 169, 373, 229, 169, 375, 230, + 231, 374, 169, 169, 169, 169, 232, 913, 169, 233, + 169, 169, 376, 451, 169, 169, 169, 913, 452, 227, + 228, 169, 169, 229, 913, 375, 230, 231, 374, 169, + 388, 169, 913, 232, 169, 169, 233, 169, 399, 376, + 451, 169, 169, 169, 169, 452, 913, 169, 377, 169, - 349, 166, 370, 166, 375, 166, 378, 350, 166, 443, - 166, 166, 376, 166, 893, 166, 347, 444, 166, 368, - 166, 348, 166, 445, 369, 166, 442, 349, 166, 370, - 166, 375, 166, 378, 350, 381, 443, 382, 166, 166, - 166, 356, 166, 357, 444, 446, 893, 358, 447, 166, - 445, 893, 166, 166, 359, 379, 448, 380, 166, 166, - 387, 893, 381, 166, 382, 893, 166, 893, 356, 166, - 357, 383, 446, 166, 358, 447, 166, 893, 166, 893, - 166, 359, 379, 448, 380, 166, 166, 387, 166, 166, - 166, 371, 166, 166, 389, 893, 166, 384, 383, 388, + 453, 378, 913, 234, 169, 235, 386, 388, 236, 169, + 913, 169, 169, 454, 169, 399, 455, 169, 379, 169, + 913, 169, 456, 380, 169, 377, 913, 453, 378, 169, + 234, 169, 235, 386, 169, 236, 169, 169, 387, 169, + 454, 169, 356, 455, 169, 379, 169, 357, 381, 456, + 380, 169, 389, 358, 169, 913, 169, 169, 913, 913, + 359, 169, 169, 913, 169, 387, 169, 913, 390, 356, + 391, 169, 169, 169, 357, 381, 448, 457, 169, 389, + 358, 169, 169, 913, 169, 394, 392, 359, 393, 169, + 169, 449, 169, 169, 367, 390, 368, 391, 169, 169, - 166, 372, 166, 166, 385, 166, 373, 374, 166, 166, - 893, 893, 166, 166, 449, 166, 166, 386, 371, 166, - 166, 389, 166, 166, 384, 166, 388, 166, 372, 166, - 166, 385, 893, 373, 374, 166, 166, 390, 166, 166, - 166, 449, 391, 166, 386, 166, 893, 166, 893, 166, - 166, 393, 166, 394, 166, 166, 392, 395, 166, 166, - 893, 398, 893, 166, 390, 166, 450, 166, 451, 391, - 166, 452, 166, 166, 166, 166, 396, 893, 393, 166, - 394, 397, 166, 392, 395, 166, 166, 166, 398, 166, - 166, 166, 399, 450, 166, 451, 453, 166, 452, 454, + 369, 913, 169, 448, 457, 169, 458, 370, 913, 169, + 169, 395, 394, 392, 913, 393, 169, 169, 449, 169, + 396, 367, 169, 368, 459, 169, 169, 369, 169, 169, + 169, 400, 169, 458, 370, 398, 169, 169, 395, 460, + 461, 397, 913, 169, 382, 169, 169, 396, 169, 169, + 169, 459, 169, 169, 383, 169, 169, 169, 400, 384, + 385, 462, 398, 169, 169, 169, 460, 461, 397, 401, + 169, 382, 169, 169, 404, 169, 913, 169, 169, 402, + 169, 383, 169, 169, 169, 410, 384, 385, 462, 913, + 169, 169, 169, 403, 169, 405, 401, 169, 169, 406, - 166, 402, 166, 396, 400, 455, 166, 166, 397, 166, - 405, 166, 401, 166, 166, 166, 166, 166, 166, 399, - 403, 404, 406, 453, 166, 166, 454, 166, 402, 456, - 893, 400, 455, 166, 166, 166, 166, 405, 166, 401, - 166, 893, 166, 893, 166, 166, 166, 403, 404, 406, - 166, 166, 166, 457, 166, 893, 456, 410, 407, 409, - 166, 166, 166, 166, 893, 412, 166, 893, 413, 408, - 166, 166, 166, 166, 419, 893, 458, 166, 166, 411, - 457, 166, 166, 166, 410, 407, 409, 166, 166, 416, - 166, 415, 412, 166, 166, 413, 408, 166, 166, 414, + 169, 404, 169, 407, 913, 169, 402, 169, 408, 169, + 463, 169, 410, 169, 169, 169, 169, 169, 409, 913, + 403, 169, 405, 413, 169, 169, 406, 169, 415, 169, + 407, 411, 169, 169, 169, 408, 169, 463, 464, 412, + 169, 169, 169, 169, 169, 409, 416, 414, 169, 169, + 413, 169, 169, 465, 169, 415, 418, 169, 411, 169, + 169, 169, 420, 169, 417, 464, 412, 419, 169, 169, + 169, 169, 169, 416, 414, 169, 169, 169, 421, 169, + 465, 169, 169, 418, 169, 913, 913, 169, 423, 420, + 169, 417, 169, 466, 419, 169, 169, 169, 422, 169, - 166, 419, 166, 458, 417, 459, 411, 166, 166, 166, - 166, 462, 460, 166, 166, 463, 416, 418, 415, 464, - 166, 166, 461, 465, 166, 466, 414, 166, 420, 166, - 467, 417, 459, 166, 166, 468, 469, 470, 462, 460, - 166, 471, 463, 472, 418, 473, 464, 166, 474, 461, - 465, 166, 466, 475, 476, 420, 479, 467, 477, 480, - 166, 481, 468, 469, 470, 482, 483, 484, 471, 485, - 472, 486, 473, 487, 488, 474, 489, 478, 490, 491, - 475, 476, 492, 479, 493, 477, 480, 494, 481, 495, - 497, 496, 482, 483, 484, 498, 485, 499, 486, 500, + 426, 169, 467, 431, 169, 421, 169, 169, 913, 169, + 424, 169, 169, 425, 169, 423, 427, 169, 428, 169, + 466, 169, 429, 169, 913, 422, 169, 426, 169, 467, + 431, 169, 169, 169, 169, 430, 169, 424, 169, 169, + 425, 468, 169, 427, 469, 428, 470, 471, 169, 429, + 169, 432, 472, 169, 473, 474, 169, 476, 169, 169, + 477, 478, 430, 169, 479, 475, 480, 481, 468, 169, + 482, 469, 483, 470, 471, 484, 485, 486, 432, 472, + 487, 473, 474, 169, 476, 488, 489, 477, 478, 490, + 491, 479, 475, 480, 481, 493, 494, 482, 495, 483, - 487, 488, 501, 489, 478, 490, 491, 502, 503, 492, - 504, 493, 166, 505, 494, 589, 495, 497, 496, 893, - 893, 166, 498, 506, 499, 166, 500, 166, 590, 501, - 591, 166, 166, 166, 502, 503, 166, 504, 507, 166, - 505, 166, 589, 166, 166, 166, 508, 166, 166, 893, - 506, 166, 166, 893, 166, 590, 166, 591, 166, 166, - 166, 592, 509, 166, 166, 507, 166, 893, 166, 893, - 166, 166, 166, 508, 166, 166, 166, 511, 166, 166, - 166, 513, 510, 166, 893, 893, 166, 893, 592, 509, - 514, 166, 512, 166, 166, 166, 166, 893, 166, 166, + 496, 497, 484, 485, 486, 498, 499, 487, 500, 492, + 501, 502, 488, 489, 503, 504, 490, 491, 505, 506, + 507, 508, 493, 494, 509, 495, 512, 496, 497, 510, + 513, 511, 498, 499, 514, 500, 492, 501, 502, 515, + 516, 503, 504, 517, 520, 505, 506, 507, 508, 169, + 518, 509, 521, 512, 519, 169, 510, 513, 511, 609, + 522, 514, 610, 169, 169, 913, 515, 516, 913, 169, + 517, 520, 169, 611, 169, 169, 169, 518, 169, 521, + 169, 519, 169, 169, 169, 523, 609, 522, 169, 610, + 169, 169, 525, 169, 169, 526, 169, 913, 169, 169, - 166, 893, 166, 166, 511, 893, 166, 166, 513, 510, - 516, 518, 515, 166, 166, 166, 893, 514, 166, 512, - 522, 166, 166, 166, 166, 166, 166, 166, 519, 893, - 166, 517, 521, 524, 166, 166, 166, 516, 518, 515, - 166, 166, 166, 520, 166, 166, 893, 522, 166, 166, - 893, 166, 593, 527, 166, 519, 166, 166, 517, 521, - 524, 166, 166, 166, 523, 893, 166, 166, 526, 166, - 520, 166, 166, 166, 166, 166, 166, 525, 531, 593, - 527, 166, 166, 166, 893, 528, 166, 166, 529, 530, - 166, 523, 166, 166, 166, 526, 166, 594, 166, 166, + 611, 169, 169, 524, 527, 169, 528, 169, 169, 913, + 169, 169, 523, 169, 169, 169, 169, 913, 612, 525, + 169, 169, 526, 531, 169, 169, 169, 169, 169, 530, + 524, 527, 529, 528, 169, 169, 169, 533, 532, 913, + 169, 169, 169, 169, 169, 612, 613, 169, 169, 534, + 531, 169, 536, 169, 169, 169, 530, 169, 538, 529, + 169, 169, 169, 169, 533, 532, 535, 537, 539, 169, + 169, 169, 169, 613, 169, 169, 534, 913, 543, 536, + 169, 169, 614, 541, 169, 538, 169, 169, 169, 169, + 169, 169, 169, 535, 537, 539, 540, 169, 169, 169, - 166, 166, 166, 166, 525, 531, 166, 166, 893, 166, - 166, 532, 528, 166, 166, 529, 530, 166, 893, 166, - 166, 166, 535, 166, 594, 166, 166, 533, 534, 166, - 166, 166, 166, 166, 166, 536, 893, 166, 532, 893, - 166, 166, 595, 541, 893, 537, 542, 166, 893, 535, - 166, 166, 166, 166, 533, 534, 166, 893, 166, 166, - 166, 166, 536, 166, 166, 543, 166, 166, 166, 595, - 541, 538, 537, 542, 540, 539, 166, 893, 166, 166, - 166, 596, 893, 166, 166, 166, 544, 166, 166, 166, - 166, 166, 543, 166, 166, 166, 545, 549, 538, 551, + 544, 169, 542, 913, 169, 543, 169, 169, 169, 614, + 541, 169, 169, 169, 545, 169, 169, 169, 169, 169, + 546, 913, 169, 540, 169, 169, 549, 544, 169, 542, + 547, 169, 913, 169, 169, 169, 169, 913, 169, 169, + 169, 545, 169, 169, 913, 169, 169, 546, 550, 169, + 913, 169, 548, 549, 615, 169, 169, 547, 913, 554, + 169, 169, 169, 169, 169, 169, 913, 169, 559, 169, + 913, 551, 169, 169, 552, 550, 169, 169, 913, 548, + 169, 615, 169, 169, 169, 169, 554, 169, 169, 555, + 560, 169, 169, 169, 169, 559, 553, 169, 551, 561, - 166, 540, 539, 166, 547, 546, 166, 166, 596, 166, - 166, 166, 166, 544, 166, 166, 166, 166, 893, 597, - 166, 166, 166, 545, 549, 548, 551, 166, 598, 893, - 166, 547, 546, 166, 166, 552, 166, 166, 550, 166, - 166, 166, 166, 166, 166, 553, 597, 166, 166, 166, - 893, 166, 548, 559, 166, 598, 554, 166, 556, 166, - 166, 166, 552, 166, 555, 550, 166, 166, 166, 166, - 166, 166, 553, 166, 166, 166, 166, 560, 166, 166, - 559, 166, 599, 554, 893, 556, 166, 166, 558, 561, - 166, 555, 557, 166, 166, 166, 166, 166, 166, 166, + 169, 552, 913, 169, 169, 169, 913, 169, 556, 557, + 169, 169, 169, 169, 169, 169, 555, 560, 169, 169, + 169, 169, 913, 553, 169, 913, 561, 169, 558, 562, + 169, 169, 169, 169, 567, 556, 557, 169, 169, 563, + 169, 169, 565, 616, 169, 169, 169, 564, 169, 169, + 169, 169, 568, 169, 169, 558, 562, 169, 169, 566, + 169, 567, 569, 169, 169, 169, 563, 617, 169, 565, + 616, 169, 169, 618, 564, 169, 169, 169, 169, 568, + 169, 169, 169, 169, 570, 169, 566, 571, 169, 569, + 169, 169, 169, 913, 617, 169, 169, 169, 572, 169, - 166, 166, 166, 166, 560, 893, 166, 600, 562, 599, - 893, 563, 569, 166, 564, 558, 561, 166, 893, 557, - 166, 166, 166, 166, 166, 565, 166, 566, 166, 166, - 166, 166, 166, 166, 600, 562, 568, 166, 563, 569, - 166, 564, 570, 567, 166, 166, 166, 893, 166, 166, - 166, 166, 565, 166, 566, 166, 166, 893, 166, 166, - 166, 572, 166, 568, 166, 166, 166, 166, 893, 570, - 567, 166, 166, 166, 571, 166, 166, 166, 166, 166, - 166, 601, 573, 166, 574, 166, 602, 166, 572, 166, - 575, 166, 166, 166, 166, 577, 166, 166, 166, 166, + 618, 577, 169, 574, 619, 169, 578, 169, 169, 169, + 169, 570, 169, 573, 571, 169, 169, 169, 587, 169, + 575, 169, 169, 169, 169, 572, 169, 169, 577, 169, + 574, 619, 169, 578, 169, 169, 576, 579, 169, 913, + 573, 169, 169, 169, 169, 587, 169, 575, 169, 169, + 169, 169, 913, 169, 169, 581, 580, 913, 583, 169, + 913, 169, 582, 576, 579, 169, 169, 620, 169, 169, + 169, 169, 584, 169, 585, 588, 169, 169, 169, 169, + 169, 913, 581, 580, 169, 583, 169, 586, 169, 582, + 169, 621, 913, 169, 620, 169, 169, 169, 169, 584, - 576, 571, 893, 166, 166, 166, 166, 893, 601, 573, - 166, 574, 166, 602, 166, 166, 166, 575, 166, 578, - 603, 166, 577, 166, 166, 166, 166, 576, 893, 166, - 166, 579, 166, 580, 166, 581, 604, 166, 583, 605, - 582, 166, 166, 166, 166, 166, 578, 603, 166, 166, - 584, 606, 166, 607, 166, 166, 166, 166, 579, 166, - 580, 166, 581, 604, 166, 583, 605, 582, 166, 608, - 166, 166, 166, 585, 586, 166, 166, 584, 606, 166, - 607, 166, 166, 587, 166, 609, 166, 588, 610, 611, - 166, 166, 612, 613, 614, 615, 608, 166, 616, 617, + 169, 585, 588, 169, 169, 169, 169, 169, 589, 169, + 169, 169, 913, 169, 586, 913, 913, 169, 621, 169, + 590, 913, 169, 169, 591, 169, 592, 169, 169, 169, + 169, 169, 169, 169, 622, 589, 169, 169, 913, 169, + 169, 593, 596, 594, 169, 169, 169, 590, 169, 913, + 169, 591, 169, 592, 595, 169, 169, 169, 169, 913, + 169, 622, 169, 169, 169, 169, 169, 597, 593, 596, + 594, 169, 169, 600, 913, 169, 169, 169, 169, 913, + 601, 595, 169, 169, 169, 169, 598, 623, 599, 169, + 169, 169, 169, 624, 597, 625, 169, 169, 603, 626, - 585, 586, 166, 618, 166, 621, 166, 619, 622, 623, - 587, 166, 609, 624, 588, 610, 611, 166, 620, 612, - 613, 614, 615, 625, 626, 616, 617, 627, 628, 629, - 618, 166, 621, 630, 619, 622, 623, 631, 632, 633, - 624, 634, 635, 636, 637, 620, 638, 639, 640, 641, - 625, 626, 642, 643, 627, 628, 629, 644, 645, 646, - 630, 647, 648, 649, 631, 632, 633, 650, 634, 635, - 636, 637, 651, 638, 639, 640, 641, 652, 166, 642, - 643, 166, 166, 166, 644, 645, 646, 657, 647, 648, - 649, 653, 166, 658, 650, 654, 656, 166, 166, 651, + 600, 169, 169, 169, 169, 169, 602, 601, 913, 169, + 169, 169, 169, 598, 623, 599, 627, 169, 913, 604, + 624, 169, 625, 169, 169, 603, 626, 605, 169, 169, + 628, 169, 169, 602, 629, 169, 169, 630, 608, 169, + 631, 632, 633, 627, 169, 606, 604, 634, 169, 607, + 635, 636, 637, 638, 605, 169, 169, 628, 641, 169, + 639, 629, 169, 169, 630, 608, 642, 631, 632, 633, + 643, 640, 606, 644, 634, 645, 607, 635, 636, 637, + 638, 646, 169, 169, 647, 641, 648, 639, 649, 650, + 651, 652, 653, 642, 654, 655, 656, 643, 640, 657, - 893, 655, 166, 166, 652, 166, 893, 166, 166, 166, - 166, 166, 166, 166, 657, 166, 893, 166, 653, 166, - 658, 659, 654, 656, 166, 166, 661, 166, 655, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 662, 166, 663, 166, 660, 166, 166, 659, 166, - 893, 666, 166, 661, 166, 166, 166, 166, 166, 166, - 166, 665, 166, 166, 166, 664, 166, 717, 662, 166, - 663, 893, 660, 166, 166, 166, 166, 166, 666, 166, - 893, 668, 166, 166, 166, 667, 166, 166, 665, 166, - 166, 166, 664, 166, 717, 718, 166, 166, 669, 166, + 644, 658, 645, 659, 660, 661, 662, 663, 646, 664, + 665, 647, 666, 648, 667, 649, 650, 651, 652, 653, + 668, 654, 655, 656, 669, 670, 657, 671, 658, 672, + 659, 660, 661, 662, 663, 169, 664, 665, 169, 666, + 169, 667, 913, 677, 169, 678, 169, 668, 673, 169, + 737, 669, 670, 674, 671, 169, 672, 676, 675, 169, + 169, 913, 169, 169, 169, 169, 169, 169, 169, 169, + 677, 169, 678, 169, 913, 673, 169, 737, 913, 169, + 674, 169, 169, 681, 676, 675, 169, 169, 169, 679, + 169, 169, 169, 169, 169, 169, 169, 169, 738, 686, - 670, 671, 166, 166, 166, 893, 166, 166, 668, 166, - 166, 166, 667, 166, 166, 672, 166, 166, 166, 166, - 166, 166, 718, 166, 166, 669, 166, 670, 671, 166, - 166, 719, 166, 166, 166, 673, 166, 166, 166, 674, - 166, 166, 672, 166, 720, 166, 166, 166, 166, 166, - 166, 675, 166, 166, 677, 166, 166, 166, 719, 166, - 893, 893, 673, 166, 676, 166, 674, 166, 166, 166, - 166, 720, 166, 166, 166, 166, 166, 166, 675, 166, - 166, 677, 166, 166, 166, 166, 166, 679, 680, 166, - 166, 676, 166, 678, 166, 893, 166, 166, 681, 682, + 169, 169, 169, 169, 913, 680, 169, 683, 169, 913, + 681, 682, 169, 169, 169, 169, 679, 169, 684, 169, + 169, 169, 169, 169, 169, 738, 686, 169, 169, 169, + 169, 169, 680, 169, 683, 687, 169, 169, 682, 169, + 169, 169, 913, 689, 169, 684, 685, 169, 169, 169, + 169, 169, 688, 913, 169, 913, 169, 169, 169, 913, + 169, 913, 687, 169, 169, 169, 169, 739, 169, 169, + 689, 169, 913, 685, 169, 169, 913, 690, 169, 688, + 691, 169, 169, 169, 169, 169, 169, 692, 169, 169, + 169, 169, 169, 169, 739, 169, 169, 693, 169, 694, - 166, 166, 166, 166, 166, 166, 166, 893, 166, 166, - 166, 683, 166, 166, 679, 680, 166, 166, 893, 166, - 678, 166, 684, 166, 166, 681, 682, 166, 166, 166, - 166, 166, 166, 166, 685, 166, 166, 166, 683, 166, - 721, 893, 688, 166, 166, 166, 166, 166, 166, 684, - 166, 166, 686, 166, 166, 166, 166, 166, 166, 689, - 687, 685, 166, 166, 166, 166, 166, 721, 166, 688, - 166, 893, 166, 166, 166, 166, 690, 692, 166, 686, - 166, 166, 166, 166, 166, 166, 689, 687, 893, 166, - 166, 691, 166, 166, 693, 166, 166, 166, 694, 166, + 169, 169, 169, 169, 690, 740, 913, 691, 169, 169, + 169, 169, 169, 169, 692, 169, 169, 169, 169, 169, + 169, 695, 696, 169, 693, 169, 694, 169, 913, 169, + 169, 169, 740, 169, 169, 169, 913, 169, 169, 169, + 741, 913, 697, 169, 913, 169, 169, 169, 695, 696, + 169, 169, 169, 169, 169, 169, 699, 169, 169, 913, + 169, 169, 913, 169, 701, 698, 169, 741, 169, 697, + 169, 169, 169, 169, 742, 169, 700, 169, 169, 913, + 169, 169, 169, 699, 169, 169, 702, 913, 169, 169, + 169, 701, 698, 169, 169, 169, 703, 169, 169, 169, - 166, 166, 166, 690, 692, 166, 893, 695, 166, 166, - 166, 696, 166, 166, 893, 166, 166, 166, 691, 166, - 166, 693, 893, 166, 166, 694, 166, 697, 166, 166, - 699, 166, 166, 166, 695, 166, 893, 166, 696, 166, - 166, 698, 166, 166, 166, 893, 166, 701, 893, 166, - 166, 166, 703, 166, 697, 705, 893, 699, 166, 166, - 166, 702, 166, 166, 166, 700, 166, 166, 698, 166, - 166, 704, 166, 166, 701, 166, 166, 166, 166, 703, - 166, 166, 705, 166, 893, 893, 166, 166, 702, 166, - 166, 706, 700, 166, 166, 166, 166, 166, 704, 166, + 169, 742, 169, 700, 169, 169, 705, 704, 169, 169, + 169, 169, 169, 702, 169, 169, 169, 169, 707, 169, + 169, 169, 708, 703, 169, 706, 169, 169, 169, 913, + 169, 169, 169, 705, 704, 169, 169, 169, 169, 169, + 710, 169, 169, 169, 169, 707, 169, 169, 712, 708, + 913, 169, 706, 709, 169, 169, 169, 169, 169, 169, + 711, 743, 169, 169, 713, 913, 169, 710, 169, 169, + 169, 169, 169, 169, 169, 712, 169, 169, 169, 913, + 709, 715, 169, 169, 744, 714, 169, 711, 743, 169, + 169, 713, 169, 169, 169, 169, 913, 169, 169, 169, - 166, 166, 166, 707, 708, 893, 166, 893, 166, 166, - 166, 710, 166, 711, 166, 166, 166, 166, 706, 893, - 166, 709, 166, 166, 893, 713, 166, 893, 166, 722, - 707, 708, 166, 166, 166, 714, 166, 166, 710, 166, - 711, 723, 166, 166, 166, 166, 716, 166, 709, 712, - 166, 166, 713, 166, 166, 166, 722, 724, 725, 166, - 726, 166, 714, 715, 166, 166, 166, 166, 723, 727, - 166, 166, 166, 716, 166, 728, 712, 729, 166, 730, - 731, 166, 166, 732, 724, 725, 733, 726, 734, 735, - 715, 736, 166, 166, 166, 737, 727, 738, 166, 739, + 169, 716, 717, 169, 169, 169, 169, 169, 715, 169, + 169, 744, 714, 913, 169, 718, 169, 913, 745, 169, + 169, 169, 913, 719, 169, 169, 169, 169, 716, 717, + 169, 720, 169, 169, 169, 723, 169, 169, 722, 169, + 169, 169, 718, 169, 169, 745, 746, 721, 724, 725, + 719, 913, 169, 169, 169, 169, 913, 169, 720, 169, + 169, 913, 723, 169, 169, 722, 169, 169, 169, 169, + 169, 169, 169, 746, 721, 724, 725, 913, 726, 728, + 169, 169, 169, 734, 169, 731, 169, 169, 169, 169, + 169, 169, 169, 729, 727, 169, 169, 169, 169, 169, - 740, 741, 728, 742, 729, 743, 730, 731, 744, 745, - 732, 746, 747, 733, 748, 734, 735, 749, 736, 750, - 751, 752, 737, 753, 738, 754, 739, 740, 741, 755, - 742, 756, 743, 757, 758, 744, 745, 759, 746, 747, - 760, 748, 761, 762, 749, 763, 750, 751, 752, 893, - 753, 166, 754, 166, 166, 811, 755, 765, 756, 766, - 757, 758, 767, 166, 759, 812, 813, 760, 770, 761, - 762, 166, 763, 166, 166, 764, 166, 166, 166, 166, - 166, 166, 811, 166, 765, 768, 766, 166, 166, 767, - 166, 166, 812, 813, 893, 770, 166, 769, 166, 166, + 169, 169, 747, 169, 169, 726, 728, 169, 169, 169, + 734, 169, 731, 169, 730, 169, 169, 169, 169, 169, + 729, 727, 169, 169, 169, 169, 733, 169, 169, 747, + 169, 169, 169, 169, 736, 169, 169, 732, 748, 735, + 169, 730, 169, 169, 169, 169, 749, 750, 751, 169, + 169, 169, 169, 733, 169, 169, 752, 753, 754, 169, + 169, 736, 169, 755, 732, 748, 735, 756, 757, 169, + 169, 169, 758, 749, 750, 751, 759, 760, 761, 169, + 762, 169, 169, 752, 753, 754, 763, 764, 765, 766, + 755, 767, 768, 769, 756, 757, 770, 771, 772, 758, - 166, 166, 764, 166, 166, 773, 166, 166, 166, 771, - 166, 166, 768, 166, 166, 166, 814, 815, 166, 166, - 772, 166, 166, 166, 769, 166, 166, 893, 166, 893, - 775, 776, 773, 166, 166, 166, 771, 774, 166, 777, - 166, 166, 166, 814, 815, 816, 166, 772, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 775, 776, 166, - 166, 782, 166, 893, 774, 778, 777, 780, 166, 166, - 166, 779, 816, 166, 166, 166, 166, 166, 166, 781, - 166, 166, 166, 166, 893, 166, 166, 783, 782, 166, - 166, 166, 778, 166, 780, 166, 166, 166, 779, 817, + 773, 774, 775, 759, 760, 761, 776, 762, 777, 778, + 779, 780, 781, 763, 764, 765, 766, 782, 767, 768, + 769, 783, 169, 770, 771, 772, 169, 773, 774, 775, + 169, 831, 785, 776, 786, 777, 778, 779, 780, 781, + 832, 833, 169, 913, 782, 834, 169, 913, 783, 169, + 169, 784, 169, 169, 169, 787, 169, 169, 831, 785, + 169, 786, 913, 913, 790, 169, 169, 832, 833, 169, + 789, 913, 834, 169, 788, 793, 169, 169, 784, 169, + 169, 169, 787, 169, 169, 169, 169, 169, 169, 169, + 169, 790, 169, 169, 835, 169, 792, 789, 791, 169, - 166, 166, 166, 166, 784, 166, 781, 893, 785, 166, - 166, 166, 166, 166, 783, 893, 166, 166, 166, 166, - 166, 787, 166, 166, 893, 166, 817, 166, 893, 166, - 166, 784, 166, 166, 786, 785, 789, 166, 166, 166, - 166, 166, 166, 166, 788, 166, 166, 166, 787, 166, - 166, 790, 166, 166, 166, 166, 166, 166, 893, 166, - 166, 786, 166, 789, 166, 818, 166, 791, 166, 166, - 166, 788, 166, 166, 166, 166, 166, 166, 790, 166, - 166, 793, 166, 166, 166, 792, 166, 796, 893, 166, - 166, 166, 818, 166, 791, 166, 794, 166, 893, 797, + 913, 788, 793, 169, 796, 836, 837, 169, 169, 169, + 169, 169, 169, 169, 794, 169, 169, 169, 169, 169, + 797, 835, 169, 792, 169, 791, 169, 795, 169, 169, + 169, 796, 836, 837, 801, 169, 169, 169, 169, 169, + 169, 794, 913, 798, 799, 169, 169, 797, 169, 169, + 169, 169, 169, 800, 795, 169, 169, 169, 169, 169, + 803, 801, 169, 838, 169, 169, 169, 169, 169, 802, + 798, 799, 169, 169, 807, 169, 169, 169, 169, 169, + 800, 804, 169, 169, 169, 169, 169, 803, 169, 169, + 838, 169, 169, 169, 169, 169, 802, 169, 805, 169, - 166, 166, 166, 166, 166, 166, 166, 166, 793, 798, - 166, 166, 792, 166, 796, 166, 819, 166, 795, 820, - 166, 821, 166, 794, 166, 166, 797, 166, 166, 166, - 166, 166, 166, 166, 166, 801, 798, 800, 166, 166, - 166, 802, 166, 819, 799, 795, 820, 166, 821, 166, - 166, 166, 166, 166, 166, 893, 166, 805, 166, 166, - 166, 166, 801, 803, 800, 166, 166, 166, 802, 806, - 166, 799, 893, 166, 166, 808, 166, 166, 807, 166, - 166, 166, 804, 166, 805, 166, 166, 166, 166, 166, - 803, 822, 166, 166, 166, 166, 806, 166, 823, 166, + 169, 807, 169, 169, 809, 169, 169, 806, 804, 169, + 169, 169, 169, 913, 839, 169, 808, 169, 169, 169, + 169, 169, 169, 913, 169, 805, 169, 169, 169, 169, + 169, 809, 810, 169, 806, 913, 169, 169, 169, 169, + 811, 839, 169, 808, 169, 169, 169, 169, 169, 169, + 169, 813, 840, 169, 169, 169, 169, 169, 913, 810, + 816, 812, 169, 169, 169, 169, 169, 811, 913, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 813, 840, + 169, 169, 169, 169, 169, 814, 817, 816, 812, 169, + 169, 818, 169, 169, 815, 169, 169, 169, 169, 169, - 166, 824, 808, 166, 825, 807, 166, 809, 166, 804, - 166, 810, 166, 166, 166, 166, 166, 826, 822, 166, - 166, 827, 166, 828, 829, 823, 166, 830, 824, 831, - 166, 825, 832, 833, 809, 166, 834, 835, 810, 166, - 166, 836, 166, 861, 826, 166, 166, 838, 827, 893, - 828, 829, 893, 893, 830, 837, 831, 166, 166, 832, - 833, 166, 166, 834, 835, 166, 166, 166, 836, 166, - 861, 839, 166, 166, 838, 166, 840, 166, 166, 841, - 166, 166, 837, 893, 166, 166, 893, 893, 166, 166, - 842, 166, 166, 166, 166, 166, 166, 843, 839, 166, + 913, 169, 169, 169, 913, 819, 841, 169, 169, 169, + 169, 169, 814, 817, 169, 169, 821, 169, 818, 169, + 169, 815, 169, 169, 820, 169, 824, 823, 169, 169, + 169, 169, 819, 841, 169, 825, 169, 169, 169, 169, + 169, 169, 169, 821, 822, 169, 913, 169, 826, 828, + 169, 820, 169, 824, 823, 842, 169, 169, 169, 169, + 169, 169, 825, 169, 827, 169, 169, 169, 169, 169, + 169, 822, 169, 169, 830, 826, 828, 169, 169, 843, + 169, 844, 842, 169, 829, 169, 169, 169, 845, 846, + 169, 827, 169, 169, 847, 169, 169, 169, 169, 848, - 166, 166, 166, 840, 166, 166, 841, 166, 166, 166, - 166, 166, 166, 844, 166, 862, 166, 842, 166, 166, - 893, 893, 166, 166, 843, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 844, 166, 862, 166, 845, 166, 166, 166, 166, 848, - 166, 846, 166, 166, 893, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 863, 864, 847, 166, 166, 166, - 166, 845, 166, 166, 166, 166, 848, 166, 846, 166, - 166, 850, 166, 166, 849, 166, 893, 166, 893, 852, - 166, 863, 864, 847, 166, 166, 166, 166, 166, 166, + 169, 830, 849, 850, 851, 169, 843, 169, 844, 852, + 853, 829, 169, 854, 855, 845, 846, 169, 856, 169, + 169, 847, 858, 169, 169, 169, 848, 913, 169, 849, + 850, 851, 857, 169, 881, 860, 852, 853, 169, 169, + 854, 855, 169, 169, 169, 856, 169, 859, 169, 858, + 169, 169, 169, 169, 861, 169, 169, 169, 169, 857, + 169, 881, 860, 913, 913, 169, 169, 862, 882, 169, + 169, 169, 169, 169, 859, 169, 169, 169, 169, 169, + 169, 861, 169, 169, 169, 169, 863, 169, 169, 913, + 864, 169, 169, 169, 862, 882, 169, 913, 913, 169, - 166, 166, 851, 166, 166, 166, 166, 166, 850, 166, - 166, 849, 166, 854, 166, 166, 852, 855, 853, 166, - 893, 166, 865, 166, 166, 166, 166, 166, 166, 851, - 166, 166, 166, 166, 166, 166, 166, 857, 856, 166, - 854, 166, 166, 893, 855, 853, 166, 166, 166, 865, - 166, 166, 858, 166, 166, 166, 166, 166, 166, 866, - 166, 166, 166, 867, 857, 856, 166, 166, 166, 166, - 859, 166, 868, 869, 166, 166, 166, 166, 166, 858, - 166, 166, 166, 166, 166, 166, 866, 166, 166, 166, - 867, 166, 860, 166, 166, 166, 166, 859, 166, 868, + 169, 865, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 863, 169, 169, 169, 864, 169, 169, + 169, 169, 169, 169, 169, 868, 169, 169, 865, 169, + 169, 913, 870, 169, 169, 169, 169, 169, 169, 169, + 867, 866, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 868, 169, 169, 169, 169, 169, 872, 870, + 169, 169, 869, 169, 169, 913, 169, 867, 866, 169, + 883, 169, 169, 169, 169, 169, 871, 169, 169, 913, + 873, 169, 169, 169, 169, 872, 169, 169, 169, 869, + 874, 169, 169, 169, 169, 169, 884, 883, 169, 913, - 869, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 870, 166, 860, - 166, 166, 166, 166, 893, 871, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 870, 872, 893, 166, 166, 166, - 166, 166, 871, 166, 166, 166, 166, 166, 166, 166, - 874, 166, 166, 166, 873, 893, 166, 166, 166, 166, - 166, 166, 872, 166, 166, 166, 166, 166, 166, 878, - 166, 166, 166, 166, 893, 166, 166, 874, 166, 879, - 166, 873, 875, 166, 166, 166, 166, 166, 166, 166, + 875, 913, 169, 871, 885, 169, 169, 873, 169, 169, + 886, 169, 169, 169, 169, 169, 876, 874, 169, 169, + 877, 169, 169, 884, 169, 169, 878, 875, 169, 169, + 169, 885, 169, 169, 169, 913, 169, 886, 169, 169, + 169, 169, 169, 876, 169, 169, 887, 877, 169, 879, + 169, 169, 169, 878, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 888, 889, 169, 169, 169, 169, 880, + 913, 169, 169, 887, 169, 169, 879, 169, 169, 169, + 890, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 888, 889, 169, 169, 169, 169, 880, 169, 169, 169, - 166, 166, 166, 166, 166, 166, 878, 166, 166, 880, - 166, 877, 166, 881, 876, 882, 879, 883, 893, 875, - 166, 166, 166, 166, 166, 166, 166, 893, 166, 893, - 166, 166, 166, 166, 166, 166, 880, 166, 877, 893, - 881, 876, 882, 166, 883, 166, 884, 166, 166, 885, - 166, 166, 166, 166, 166, 166, 886, 887, 166, 893, - 166, 166, 166, 166, 166, 889, 166, 166, 890, 891, - 166, 166, 166, 884, 166, 893, 885, 888, 166, 893, - 166, 166, 166, 886, 887, 166, 166, 166, 166, 166, - 166, 166, 889, 166, 166, 890, 891, 166, 166, 892, + 169, 169, 169, 169, 169, 169, 169, 890, 169, 169, + 169, 169, 891, 169, 892, 169, 169, 169, 169, 169, + 169, 169, 169, 913, 169, 169, 169, 169, 169, 169, + 169, 169, 894, 169, 169, 169, 169, 169, 169, 891, + 169, 892, 169, 169, 169, 169, 899, 169, 169, 169, + 893, 169, 169, 169, 169, 169, 913, 169, 900, 894, + 169, 169, 169, 169, 169, 169, 895, 169, 169, 169, + 169, 169, 169, 899, 898, 169, 169, 893, 169, 169, + 897, 169, 901, 896, 169, 900, 902, 169, 903, 169, + 169, 169, 169, 895, 169, 169, 169, 169, 169, 169, - 166, 893, 893, 893, 888, 166, 893, 166, 166, 893, - 893, 893, 166, 166, 166, 166, 166, 166, 166, 893, - 166, 893, 893, 893, 166, 893, 892, 166, 893, 893, - 893, 893, 166, 893, 166, 166, 893, 893, 893, 893, - 893, 893, 893, 893, 166, 893, 893, 166, 75, 893, - 893, 75, 76, 893, 76, 76, 154, 893, 154, 154, - 156, 893, 156, 156, 157, 893, 157, 157, 166, 893, - 166, 166, 5, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, + 169, 898, 913, 169, 169, 913, 904, 897, 169, 901, + 896, 169, 169, 902, 169, 903, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 906, 169, 169, 169, 905, + 909, 169, 169, 904, 169, 169, 907, 908, 169, 169, + 910, 169, 169, 169, 913, 911, 169, 169, 169, 169, + 169, 169, 906, 169, 913, 169, 905, 909, 169, 169, + 169, 169, 169, 907, 908, 169, 169, 910, 169, 169, + 169, 913, 911, 169, 912, 169, 913, 169, 169, 913, + 169, 913, 169, 913, 913, 169, 169, 169, 913, 169, + 913, 913, 169, 169, 913, 169, 913, 169, 913, 913, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893 + 913, 912, 913, 913, 913, 169, 913, 169, 913, 169, + 913, 913, 913, 169, 75, 913, 913, 75, 76, 913, + 76, 76, 157, 913, 157, 157, 159, 913, 159, 159, + 160, 913, 160, 160, 169, 913, 169, 169, 5, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + + 913, 913, 913, 913 } ; -static yyconst flex_int16_t yy_chk[3639] = +static yyconst flex_int16_t yy_chk[3705] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1140,391 +1154,399 @@ static yyconst flex_int16_t yy_chk[3639] = 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 7, 8, 8, 14, 14, 15, 15, 17, 18, - 17, 24, 21, 19, 23, 26, 17, 21, 17, 24, - 23, 27, 29, 17, 28, 86, 29, 19, 28, 18, - 19, 19, 41, 41, 28, 17, 18, 17, 24, 21, - 19, 23, 26, 17, 21, 17, 24, 23, 27, 29, - 17, 28, 86, 29, 19, 28, 18, 19, 19, 20, - 22, 28, 896, 20, 32, 87, 22, 20, 30, 22, + 17, 23, 21, 19, 21, 26, 17, 23, 17, 21, + 24, 27, 29, 17, 21, 86, 29, 19, 24, 18, + 19, 19, 41, 41, 916, 17, 18, 17, 23, 21, + 19, 21, 26, 17, 23, 17, 21, 24, 27, 29, + 17, 21, 86, 29, 19, 24, 18, 19, 19, 20, + 22, 28, 87, 20, 90, 28, 22, 20, 338, 22, - 25, 89, 22, 20, 89, 32, 20, 25, 25, 329, - 34, 32, 30, 25, 34, 236, 20, 22, 30, 30, - 20, 32, 87, 22, 20, 30, 22, 25, 89, 22, - 20, 89, 32, 20, 25, 25, 31, 34, 32, 30, - 25, 34, 38, 90, 31, 30, 30, 61, 31, 161, - 38, 31, 160, 37, 157, 37, 42, 42, 37, 39, - 39, 48, 48, 31, 49, 49, 96, 61, 156, 38, - 90, 31, 74, 74, 61, 31, 55, 38, 31, 35, - 37, 35, 37, 97, 35, 37, 39, 39, 81, 81, - 55, 35, 35, 96, 61, 55, 55, 155, 155, 80, + 25, 28, 22, 20, 42, 42, 20, 25, 25, 242, + 34, 30, 164, 25, 34, 163, 20, 22, 28, 87, + 20, 90, 28, 22, 20, 30, 22, 25, 28, 22, + 20, 30, 30, 20, 25, 25, 31, 34, 30, 32, + 25, 34, 39, 39, 31, 38, 48, 48, 31, 160, + 32, 31, 30, 38, 49, 49, 32, 159, 30, 30, + 80, 61, 79, 31, 76, 67, 32, 74, 74, 39, + 39, 31, 38, 75, 37, 31, 37, 32, 31, 37, + 38, 61, 50, 32, 35, 67, 35, 57, 61, 35, + 81, 81, 67, 47, 57, 46, 35, 35, 158, 158, - 91, 162, 162, 55, 88, 58, 35, 79, 35, 58, - 97, 35, 88, 58, 91, 60, 100, 55, 35, 35, - 36, 36, 55, 55, 36, 60, 93, 91, 36, 58, - 76, 88, 58, 93, 36, 60, 58, 36, 75, 88, - 58, 91, 60, 100, 50, 47, 46, 36, 36, 45, - 43, 36, 60, 93, 101, 36, 58, 95, 16, 67, - 93, 36, 60, 13, 36, 51, 51, 95, 51, 51, - 51, 51, 51, 62, 51, 51, 51, 62, 57, 67, - 51, 101, 51, 62, 95, 57, 67, 94, 51, 94, - 51, 57, 102, 62, 95, 51, 12, 11, 57, 5, + 57, 37, 45, 37, 165, 165, 37, 57, 61, 88, + 43, 35, 67, 35, 57, 16, 35, 88, 13, 89, + 60, 57, 89, 35, 35, 36, 36, 57, 96, 36, + 60, 63, 36, 36, 57, 63, 88, 58, 12, 36, + 60, 58, 36, 11, 88, 58, 89, 60, 5, 89, + 0, 63, 36, 36, 0, 96, 36, 60, 63, 36, + 36, 58, 63, 94, 58, 94, 36, 60, 58, 36, + 51, 51, 58, 51, 51, 51, 51, 51, 63, 51, + 51, 51, 0, 91, 93, 51, 95, 51, 58, 97, + 94, 93, 94, 51, 0, 51, 95, 91, 0, 62, - 62, 0, 0, 0, 62, 57, 67, 51, 0, 51, - 62, 104, 57, 0, 94, 51, 94, 51, 57, 102, - 62, 105, 51, 52, 52, 57, 52, 52, 52, 52, - 52, 63, 52, 52, 52, 63, 68, 72, 104, 52, - 68, 72, 0, 99, 99, 72, 106, 107, 105, 73, - 108, 63, 73, 73, 109, 0, 68, 113, 63, 52, - 0, 72, 63, 68, 72, 0, 52, 68, 72, 73, - 99, 99, 72, 106, 107, 115, 73, 108, 63, 73, - 73, 109, 110, 68, 113, 110, 52, 53, 72, 98, - 116, 53, 111, 103, 98, 103, 73, 111, 0, 103, + 51, 0, 0, 62, 0, 0, 0, 0, 0, 62, + 91, 93, 51, 95, 51, 100, 97, 0, 93, 62, + 51, 68, 51, 95, 91, 68, 62, 51, 52, 52, + 62, 52, 52, 52, 52, 52, 62, 52, 52, 52, + 0, 68, 100, 72, 52, 101, 62, 72, 68, 99, + 99, 72, 68, 73, 102, 103, 73, 73, 104, 106, + 107, 108, 109, 0, 52, 0, 110, 72, 68, 0, + 72, 52, 101, 73, 72, 111, 99, 99, 72, 0, + 73, 102, 103, 73, 73, 104, 106, 107, 108, 109, + 98, 52, 53, 110, 72, 98, 53, 115, 113, 117, - 98, 53, 115, 117, 53, 53, 103, 98, 0, 110, - 118, 53, 110, 0, 53, 0, 98, 116, 53, 111, - 103, 98, 103, 121, 111, 114, 103, 98, 53, 0, - 117, 53, 53, 103, 98, 114, 0, 118, 53, 54, - 114, 114, 119, 54, 119, 122, 120, 54, 120, 123, - 121, 124, 114, 54, 125, 126, 54, 127, 129, 130, - 131, 132, 114, 54, 0, 0, 54, 114, 114, 119, - 54, 119, 122, 120, 54, 120, 123, 0, 124, 135, - 54, 125, 126, 54, 127, 129, 130, 131, 132, 133, - 54, 56, 134, 133, 136, 56, 138, 134, 139, 140, + 73, 98, 111, 113, 118, 105, 53, 105, 98, 53, + 53, 105, 112, 0, 119, 112, 53, 98, 105, 53, + 120, 0, 98, 53, 115, 113, 117, 123, 98, 0, + 113, 118, 105, 53, 105, 98, 53, 53, 105, 112, + 116, 119, 112, 53, 54, 105, 124, 120, 54, 121, + 116, 121, 54, 125, 123, 116, 116, 122, 54, 122, + 126, 54, 127, 128, 129, 131, 132, 116, 54, 0, + 133, 54, 134, 124, 0, 54, 121, 116, 121, 54, + 125, 137, 116, 116, 122, 54, 122, 126, 54, 127, + 128, 129, 131, 132, 135, 54, 55, 133, 135, 134, - 137, 56, 141, 142, 56, 144, 135, 56, 137, 145, - 146, 56, 0, 0, 148, 0, 133, 0, 56, 134, - 133, 136, 56, 138, 134, 139, 140, 137, 56, 141, - 142, 56, 144, 143, 56, 137, 145, 146, 56, 59, - 59, 148, 147, 149, 143, 147, 150, 59, 59, 151, - 152, 153, 0, 59, 238, 0, 0, 240, 0, 59, - 143, 241, 151, 166, 0, 0, 59, 59, 0, 147, - 149, 143, 147, 150, 59, 59, 151, 152, 153, 173, - 59, 238, 168, 166, 240, 169, 59, 64, 241, 151, - 166, 64, 169, 0, 167, 167, 0, 168, 244, 173, + 138, 136, 140, 55, 139, 55, 136, 141, 137, 142, + 55, 143, 139, 144, 146, 55, 55, 0, 147, 148, + 149, 135, 0, 55, 145, 135, 151, 138, 136, 140, + 55, 139, 55, 136, 141, 145, 142, 55, 143, 139, + 144, 146, 55, 55, 56, 147, 148, 149, 56, 150, + 152, 145, 150, 151, 56, 153, 154, 56, 155, 156, + 56, 0, 145, 0, 56, 0, 0, 0, 169, 154, + 244, 56, 246, 0, 0, 56, 150, 152, 0, 150, + 247, 56, 153, 154, 56, 155, 156, 56, 169, 170, + 170, 56, 59, 59, 171, 169, 154, 244, 0, 246, - 169, 64, 168, 177, 245, 169, 173, 64, 64, 168, - 166, 64, 169, 0, 64, 167, 0, 246, 64, 169, - 177, 167, 167, 177, 168, 244, 173, 169, 64, 168, - 177, 245, 169, 170, 64, 64, 170, 170, 64, 65, - 65, 0, 167, 171, 246, 171, 0, 177, 65, 0, - 177, 0, 65, 172, 172, 65, 0, 170, 181, 65, - 170, 247, 0, 170, 170, 171, 65, 65, 172, 174, - 171, 0, 171, 172, 181, 65, 174, 0, 181, 65, - 172, 172, 65, 174, 170, 181, 65, 66, 247, 174, - 248, 66, 171, 0, 249, 172, 174, 250, 66, 175, + 59, 59, 250, 174, 0, 174, 59, 247, 0, 171, + 170, 172, 59, 0, 171, 169, 170, 170, 172, 59, + 59, 171, 0, 0, 251, 174, 172, 59, 59, 250, + 174, 172, 174, 59, 0, 176, 171, 170, 172, 59, + 64, 171, 252, 0, 64, 172, 173, 254, 255, 173, + 173, 251, 174, 172, 64, 176, 256, 253, 172, 253, + 64, 64, 176, 0, 64, 0, 0, 64, 0, 252, + 173, 64, 0, 173, 254, 255, 173, 173, 0, 175, + 175, 64, 176, 256, 253, 0, 253, 64, 64, 177, + 179, 64, 65, 65, 175, 178, 177, 173, 184, 175, - 172, 181, 251, 174, 66, 181, 175, 178, 175, 0, - 174, 66, 0, 0, 66, 253, 174, 248, 66, 175, - 176, 249, 178, 180, 250, 66, 175, 178, 0, 251, - 176, 66, 254, 175, 178, 175, 180, 180, 66, 69, - 176, 69, 253, 180, 69, 182, 175, 176, 255, 178, - 180, 69, 69, 0, 178, 182, 0, 176, 183, 254, - 183, 69, 0, 180, 180, 182, 69, 176, 69, 257, - 180, 69, 182, 258, 185, 255, 0, 0, 69, 69, - 183, 185, 182, 256, 0, 183, 0, 183, 69, 70, - 70, 186, 182, 70, 185, 187, 257, 70, 256, 0, + 179, 65, 178, 177, 178, 65, 175, 175, 65, 177, + 179, 0, 65, 0, 184, 178, 177, 179, 184, 65, + 65, 175, 178, 177, 0, 184, 175, 179, 65, 178, + 177, 178, 65, 180, 181, 65, 177, 179, 186, 65, + 66, 184, 178, 257, 66, 184, 185, 259, 0, 181, + 180, 66, 186, 180, 181, 183, 185, 66, 186, 260, + 180, 181, 0, 0, 66, 186, 185, 66, 183, 183, + 257, 66, 261, 185, 259, 183, 181, 180, 66, 186, + 180, 181, 183, 185, 66, 186, 260, 0, 187, 187, + 191, 66, 69, 185, 69, 183, 183, 69, 188, 261, - 258, 185, 0, 70, 186, 187, 70, 183, 185, 193, - 256, 186, 0, 70, 0, 187, 70, 70, 186, 188, - 70, 185, 187, 0, 70, 256, 188, 189, 0, 193, - 70, 186, 187, 70, 0, 259, 193, 189, 186, 188, - 70, 71, 187, 191, 0, 260, 188, 189, 261, 190, - 71, 198, 71, 188, 189, 71, 193, 191, 0, 190, - 191, 71, 259, 191, 189, 0, 188, 0, 71, 190, - 191, 198, 260, 0, 189, 261, 190, 71, 198, 71, - 0, 197, 71, 192, 191, 197, 190, 191, 71, 179, - 191, 194, 192, 179, 179, 196, 190, 192, 198, 262, + 188, 0, 183, 191, 69, 69, 190, 0, 192, 187, + 191, 0, 263, 190, 69, 187, 187, 191, 192, 69, + 188, 69, 0, 0, 69, 188, 190, 188, 192, 0, + 191, 69, 69, 190, 198, 192, 187, 191, 194, 263, + 190, 69, 70, 70, 193, 192, 70, 188, 194, 70, + 70, 193, 195, 190, 198, 192, 70, 0, 194, 70, + 203, 198, 195, 264, 193, 194, 70, 0, 265, 70, + 70, 193, 195, 70, 0, 194, 70, 70, 193, 195, + 203, 198, 0, 70, 196, 194, 70, 203, 212, 195, + 264, 193, 212, 70, 71, 265, 0, 201, 196, 195, - 179, 197, 194, 192, 196, 199, 199, 179, 197, 263, - 192, 194, 197, 179, 0, 196, 179, 264, 194, 192, - 179, 179, 196, 265, 192, 199, 262, 179, 197, 194, - 192, 196, 199, 199, 179, 201, 263, 201, 194, 201, - 179, 184, 196, 184, 264, 266, 0, 184, 267, 200, - 265, 0, 199, 206, 184, 200, 269, 200, 202, 201, - 206, 0, 201, 184, 201, 0, 201, 0, 184, 200, - 184, 202, 266, 206, 184, 267, 200, 0, 202, 0, - 206, 184, 200, 269, 200, 202, 201, 206, 203, 204, - 184, 195, 195, 208, 208, 0, 200, 203, 202, 207, + 266, 196, 0, 71, 196, 71, 201, 203, 71, 197, + 0, 196, 212, 267, 71, 212, 268, 201, 197, 212, + 0, 71, 270, 197, 201, 196, 0, 266, 196, 197, + 71, 196, 71, 201, 202, 71, 197, 199, 202, 212, + 267, 71, 182, 268, 201, 197, 182, 182, 199, 270, + 197, 204, 204, 182, 202, 0, 197, 199, 0, 0, + 182, 202, 205, 0, 199, 202, 182, 0, 205, 182, + 205, 204, 207, 182, 182, 199, 262, 271, 204, 204, + 182, 202, 205, 0, 199, 207, 206, 182, 206, 205, + 206, 262, 207, 182, 189, 205, 189, 205, 204, 207, - 206, 195, 205, 207, 204, 202, 195, 195, 203, 204, - 0, 0, 195, 208, 270, 203, 204, 205, 195, 195, - 208, 208, 205, 207, 203, 209, 207, 211, 195, 205, - 207, 204, 0, 195, 195, 203, 204, 210, 210, 195, - 208, 270, 211, 212, 205, 209, 0, 211, 0, 205, - 207, 213, 209, 214, 211, 213, 212, 214, 210, 216, - 0, 216, 0, 212, 210, 210, 271, 215, 272, 211, - 212, 273, 209, 214, 211, 213, 215, 0, 213, 216, - 214, 215, 213, 212, 214, 210, 216, 215, 216, 217, - 212, 219, 217, 271, 215, 272, 274, 218, 273, 275, + 189, 0, 208, 262, 271, 209, 272, 189, 0, 205, + 206, 208, 207, 206, 0, 206, 189, 206, 262, 207, + 209, 189, 208, 189, 273, 209, 210, 189, 211, 208, + 213, 213, 209, 272, 189, 211, 214, 206, 208, 274, + 275, 210, 0, 189, 200, 200, 210, 209, 211, 208, + 213, 273, 209, 210, 200, 211, 214, 213, 213, 200, + 200, 277, 211, 214, 216, 200, 274, 275, 210, 215, + 215, 200, 200, 210, 218, 211, 0, 213, 218, 216, + 217, 200, 222, 214, 216, 222, 200, 200, 277, 0, + 215, 216, 200, 217, 220, 219, 215, 215, 218, 219, - 214, 219, 213, 215, 218, 276, 216, 220, 215, 217, - 222, 219, 218, 222, 215, 223, 217, 218, 219, 217, - 220, 221, 223, 274, 218, 221, 275, 220, 219, 277, - 0, 218, 276, 222, 220, 223, 217, 222, 219, 218, - 222, 0, 223, 0, 218, 221, 226, 220, 221, 223, - 224, 225, 221, 278, 220, 0, 277, 226, 224, 225, - 222, 228, 223, 227, 0, 228, 226, 0, 228, 224, - 224, 225, 221, 226, 233, 0, 279, 224, 225, 227, - 278, 228, 231, 227, 226, 224, 225, 230, 228, 231, - 227, 230, 228, 226, 233, 228, 224, 224, 225, 229, + 217, 218, 222, 220, 0, 218, 216, 217, 220, 222, + 278, 216, 222, 224, 220, 219, 221, 215, 221, 0, + 217, 220, 219, 224, 223, 218, 219, 217, 226, 222, + 220, 223, 226, 224, 225, 220, 221, 278, 279, 223, + 224, 220, 219, 221, 223, 221, 227, 225, 229, 227, + 224, 223, 226, 280, 225, 226, 229, 228, 223, 226, + 224, 225, 230, 221, 228, 279, 223, 229, 229, 227, + 231, 223, 233, 227, 225, 229, 227, 228, 231, 226, + 280, 225, 230, 229, 228, 0, 0, 232, 233, 230, + 231, 228, 233, 281, 229, 229, 227, 231, 232, 233, - 229, 233, 231, 279, 232, 280, 227, 230, 228, 231, - 227, 282, 281, 234, 230, 283, 231, 232, 230, 285, - 229, 233, 281, 286, 232, 287, 229, 229, 234, 231, - 288, 232, 280, 234, 230, 289, 290, 291, 282, 281, - 234, 292, 283, 294, 232, 295, 285, 229, 296, 281, - 286, 232, 287, 297, 298, 234, 300, 288, 299, 301, - 234, 302, 289, 290, 291, 303, 304, 305, 292, 306, - 294, 307, 295, 309, 310, 296, 311, 299, 312, 314, - 297, 298, 315, 300, 316, 299, 301, 318, 302, 319, - 320, 319, 303, 304, 305, 321, 306, 322, 307, 323, + 235, 235, 282, 239, 228, 231, 234, 232, 0, 230, + 234, 237, 236, 234, 232, 233, 236, 231, 237, 233, + 281, 235, 238, 239, 0, 232, 234, 235, 235, 282, + 239, 237, 236, 234, 232, 238, 240, 234, 237, 236, + 234, 283, 238, 236, 284, 237, 285, 286, 235, 238, + 239, 240, 287, 234, 288, 289, 240, 290, 237, 236, + 291, 293, 238, 240, 294, 289, 295, 296, 283, 238, + 297, 284, 298, 285, 286, 299, 300, 302, 240, 287, + 303, 288, 289, 240, 290, 304, 305, 291, 293, 306, + 307, 294, 289, 295, 296, 308, 309, 297, 310, 298, - 309, 310, 324, 311, 299, 312, 314, 325, 326, 315, - 327, 316, 330, 331, 318, 421, 319, 320, 319, 0, - 0, 332, 321, 333, 322, 335, 323, 336, 422, 324, - 423, 334, 330, 331, 325, 326, 337, 327, 334, 330, - 331, 332, 421, 333, 338, 335, 337, 336, 332, 0, - 333, 334, 335, 0, 336, 422, 337, 423, 334, 330, - 331, 424, 338, 337, 338, 334, 342, 0, 332, 0, - 333, 338, 335, 337, 336, 339, 341, 340, 334, 340, - 345, 342, 339, 337, 0, 0, 342, 0, 424, 338, - 343, 338, 341, 342, 343, 339, 341, 0, 344, 340, + 311, 312, 299, 300, 302, 313, 314, 303, 315, 307, + 317, 318, 304, 305, 319, 320, 306, 307, 322, 323, + 324, 325, 308, 309, 327, 310, 329, 311, 312, 328, + 330, 328, 313, 314, 331, 315, 307, 317, 318, 332, + 333, 319, 320, 334, 336, 322, 323, 324, 325, 339, + 335, 327, 340, 329, 335, 341, 328, 330, 328, 433, + 342, 331, 434, 344, 345, 0, 332, 333, 0, 339, + 334, 336, 340, 435, 347, 341, 339, 335, 343, 340, + 342, 335, 341, 344, 345, 343, 433, 342, 348, 434, + 344, 345, 347, 346, 347, 348, 339, 0, 343, 340, - 345, 0, 339, 341, 340, 0, 340, 345, 342, 339, - 346, 348, 344, 342, 343, 348, 0, 343, 344, 341, - 351, 343, 339, 341, 347, 344, 340, 345, 349, 0, - 346, 347, 350, 353, 350, 348, 353, 346, 348, 344, - 351, 343, 348, 349, 347, 344, 0, 351, 349, 352, - 0, 347, 425, 356, 350, 349, 353, 346, 347, 350, - 353, 350, 348, 353, 352, 0, 354, 351, 355, 352, - 349, 347, 355, 356, 358, 349, 352, 354, 360, 425, - 356, 350, 359, 353, 0, 357, 354, 357, 358, 359, - 361, 352, 355, 354, 358, 355, 352, 427, 360, 355, + 435, 347, 341, 346, 349, 343, 349, 342, 348, 0, + 344, 345, 343, 346, 351, 348, 350, 0, 436, 347, + 346, 347, 348, 352, 353, 343, 349, 352, 354, 351, + 346, 349, 350, 349, 351, 348, 350, 355, 353, 0, + 346, 351, 356, 350, 353, 436, 437, 352, 354, 356, + 352, 353, 358, 349, 352, 354, 351, 355, 359, 350, + 359, 351, 356, 350, 355, 353, 357, 358, 360, 356, + 357, 353, 358, 437, 352, 354, 356, 0, 364, 358, + 359, 361, 439, 362, 355, 359, 362, 359, 360, 356, + 357, 363, 365, 357, 358, 360, 361, 357, 364, 358, - 356, 358, 359, 362, 354, 360, 365, 357, 0, 359, - 361, 362, 357, 354, 357, 358, 359, 361, 0, 355, - 363, 358, 365, 362, 427, 360, 365, 363, 364, 359, - 362, 364, 366, 365, 357, 366, 0, 361, 362, 0, - 363, 367, 428, 371, 0, 367, 372, 363, 0, 365, - 362, 364, 366, 365, 363, 364, 368, 0, 364, 366, - 369, 367, 366, 371, 370, 373, 372, 363, 367, 428, - 371, 368, 367, 372, 370, 369, 368, 0, 364, 366, - 369, 429, 0, 368, 370, 373, 374, 369, 367, 375, - 371, 370, 373, 372, 377, 376, 374, 379, 368, 381, + 366, 361, 363, 0, 366, 364, 362, 359, 361, 439, + 362, 363, 365, 362, 367, 360, 369, 357, 363, 365, + 368, 0, 368, 361, 366, 364, 371, 366, 361, 363, + 369, 366, 0, 362, 367, 372, 369, 0, 363, 365, + 373, 367, 368, 369, 0, 370, 371, 368, 373, 368, + 0, 366, 370, 371, 441, 372, 377, 369, 0, 377, + 373, 367, 372, 369, 374, 370, 0, 373, 382, 368, + 0, 374, 370, 371, 375, 373, 377, 375, 0, 370, + 376, 441, 372, 377, 374, 378, 377, 373, 382, 378, + 383, 374, 370, 379, 380, 382, 376, 375, 374, 384, - 381, 370, 369, 368, 376, 375, 374, 369, 429, 375, - 378, 370, 373, 374, 377, 376, 375, 379, 0, 430, - 381, 377, 376, 374, 379, 378, 381, 381, 431, 0, - 378, 376, 375, 374, 380, 382, 375, 378, 380, 382, - 384, 377, 376, 383, 379, 383, 430, 381, 385, 386, - 0, 387, 378, 390, 380, 431, 384, 378, 387, 382, - 384, 380, 382, 383, 385, 380, 382, 384, 385, 386, - 383, 387, 383, 390, 389, 385, 386, 391, 387, 388, - 390, 380, 433, 384, 0, 387, 382, 384, 389, 392, - 383, 385, 388, 392, 389, 385, 386, 391, 387, 388, + 376, 375, 0, 377, 375, 378, 0, 376, 379, 380, + 383, 374, 378, 379, 380, 382, 378, 383, 381, 384, + 379, 380, 0, 376, 375, 0, 384, 376, 381, 385, + 388, 386, 378, 387, 390, 379, 380, 383, 381, 385, + 379, 380, 387, 442, 389, 381, 384, 386, 391, 385, + 388, 386, 391, 387, 390, 381, 385, 388, 386, 389, + 387, 390, 392, 392, 389, 381, 385, 443, 391, 387, + 442, 389, 397, 444, 386, 391, 385, 388, 386, 391, + 387, 390, 395, 392, 393, 394, 389, 394, 393, 392, + 392, 389, 397, 0, 443, 391, 398, 396, 395, 397, - 390, 389, 393, 394, 391, 0, 388, 434, 392, 433, - 0, 393, 399, 392, 394, 389, 392, 395, 0, 388, - 392, 389, 393, 394, 391, 395, 388, 396, 397, 393, - 394, 396, 399, 398, 434, 392, 398, 395, 393, 399, - 392, 394, 400, 397, 395, 401, 403, 0, 397, 393, - 394, 396, 395, 398, 396, 397, 402, 0, 396, 399, - 398, 403, 400, 398, 395, 401, 403, 404, 0, 400, - 397, 406, 401, 403, 402, 397, 402, 405, 396, 407, - 398, 435, 404, 402, 405, 408, 436, 404, 403, 400, - 407, 406, 401, 403, 404, 409, 410, 405, 406, 407, + 444, 401, 395, 398, 446, 394, 402, 399, 393, 395, + 392, 393, 394, 396, 394, 393, 398, 396, 410, 397, + 399, 401, 400, 398, 396, 395, 402, 399, 401, 395, + 398, 446, 394, 402, 399, 393, 400, 403, 410, 0, + 396, 403, 400, 398, 396, 410, 404, 399, 401, 400, + 406, 405, 0, 402, 399, 404, 403, 0, 406, 408, + 0, 403, 405, 400, 403, 410, 404, 447, 403, 400, + 406, 405, 407, 404, 408, 411, 407, 406, 405, 408, + 412, 0, 404, 403, 409, 406, 408, 409, 403, 405, + 413, 448, 0, 404, 447, 411, 407, 406, 405, 407, - 408, 402, 0, 402, 405, 408, 407, 0, 435, 404, - 411, 405, 408, 436, 404, 409, 410, 407, 406, 411, - 438, 412, 409, 410, 405, 413, 407, 408, 0, 415, - 411, 412, 408, 412, 416, 413, 439, 411, 415, 440, - 414, 412, 409, 410, 414, 413, 411, 438, 412, 415, - 416, 442, 413, 443, 416, 417, 415, 411, 412, 418, - 412, 416, 413, 439, 414, 415, 440, 414, 412, 444, - 419, 414, 413, 417, 418, 417, 415, 416, 442, 418, - 443, 416, 417, 419, 420, 445, 418, 420, 446, 450, - 419, 414, 451, 453, 455, 456, 444, 419, 457, 458, + 412, 408, 411, 407, 409, 414, 408, 412, 413, 415, + 413, 409, 0, 417, 409, 0, 0, 413, 448, 416, + 414, 0, 411, 407, 415, 414, 416, 412, 419, 415, + 418, 409, 414, 417, 449, 413, 415, 413, 0, 416, + 417, 418, 421, 419, 422, 420, 416, 414, 419, 0, + 418, 415, 414, 416, 420, 419, 415, 418, 423, 0, + 417, 449, 421, 425, 422, 420, 416, 423, 418, 421, + 419, 422, 420, 425, 0, 419, 424, 418, 423, 0, + 426, 420, 428, 425, 426, 423, 424, 451, 424, 421, + 425, 422, 420, 452, 423, 453, 424, 427, 428, 456, - 417, 418, 417, 459, 420, 462, 418, 460, 466, 468, - 419, 420, 445, 469, 420, 446, 450, 419, 460, 451, - 453, 455, 456, 470, 471, 457, 458, 473, 474, 475, - 459, 420, 462, 476, 460, 466, 468, 477, 480, 481, - 469, 482, 483, 484, 485, 460, 486, 488, 489, 490, - 470, 471, 491, 493, 473, 474, 475, 494, 495, 496, - 476, 497, 498, 499, 477, 480, 481, 500, 482, 483, - 484, 485, 502, 486, 488, 489, 490, 503, 505, 491, - 493, 507, 506, 508, 494, 495, 496, 509, 497, 498, - 499, 505, 510, 511, 500, 506, 508, 511, 505, 502, + 425, 429, 428, 424, 426, 423, 427, 426, 0, 428, + 425, 426, 430, 424, 451, 424, 457, 427, 0, 429, + 452, 429, 453, 424, 427, 428, 456, 430, 429, 428, + 458, 426, 430, 427, 459, 432, 431, 460, 432, 430, + 464, 465, 467, 457, 427, 431, 429, 469, 429, 431, + 470, 471, 472, 473, 430, 432, 431, 458, 476, 430, + 474, 459, 432, 431, 460, 432, 480, 464, 465, 467, + 482, 474, 431, 483, 469, 484, 431, 470, 471, 472, + 473, 485, 432, 431, 487, 476, 488, 474, 489, 490, + 491, 494, 495, 480, 496, 497, 498, 482, 474, 499, - 0, 507, 506, 508, 503, 505, 0, 509, 507, 506, - 508, 514, 510, 512, 509, 516, 0, 511, 505, 510, - 511, 512, 506, 508, 511, 505, 514, 515, 507, 506, - 508, 514, 513, 512, 509, 516, 517, 521, 514, 510, - 512, 515, 516, 517, 511, 513, 519, 515, 512, 518, - 0, 520, 513, 514, 515, 520, 517, 521, 514, 513, - 512, 519, 516, 517, 521, 518, 519, 591, 515, 518, - 517, 0, 513, 519, 515, 520, 518, 523, 520, 513, - 0, 523, 520, 517, 521, 522, 525, 522, 519, 526, - 527, 524, 518, 519, 591, 592, 518, 523, 524, 528, + 483, 500, 484, 502, 503, 504, 505, 508, 485, 509, + 510, 487, 511, 488, 512, 489, 490, 491, 494, 495, + 513, 496, 497, 498, 514, 515, 499, 517, 500, 519, + 502, 503, 504, 505, 508, 521, 509, 510, 523, 511, + 522, 512, 0, 525, 524, 527, 526, 513, 521, 527, + 611, 514, 515, 522, 517, 521, 519, 524, 523, 528, + 522, 0, 521, 525, 524, 523, 526, 522, 531, 527, + 525, 524, 527, 526, 0, 521, 527, 611, 0, 528, + 522, 529, 521, 531, 524, 523, 528, 522, 531, 529, + 525, 524, 530, 526, 533, 531, 527, 532, 612, 537, - 526, 527, 520, 531, 523, 0, 525, 522, 523, 526, - 527, 524, 522, 525, 522, 528, 526, 527, 524, 528, - 529, 532, 592, 531, 523, 524, 528, 526, 527, 533, - 531, 593, 536, 525, 522, 529, 526, 527, 524, 530, - 529, 532, 528, 530, 594, 537, 528, 529, 532, 533, - 531, 534, 536, 535, 537, 534, 533, 538, 593, 536, - 0, 0, 529, 530, 535, 537, 530, 529, 532, 541, - 530, 594, 537, 535, 540, 534, 533, 538, 534, 536, - 535, 537, 534, 539, 538, 542, 543, 540, 541, 541, - 530, 535, 537, 539, 540, 0, 541, 545, 542, 543, + 534, 529, 535, 537, 0, 530, 528, 534, 529, 0, + 531, 532, 530, 538, 533, 531, 529, 532, 535, 530, + 534, 533, 535, 537, 532, 612, 537, 534, 529, 535, + 537, 536, 530, 538, 534, 539, 541, 539, 532, 530, + 538, 533, 0, 541, 532, 535, 536, 534, 540, 535, + 537, 536, 540, 0, 542, 0, 541, 539, 536, 0, + 538, 0, 539, 541, 539, 543, 544, 613, 540, 545, + 541, 546, 0, 536, 542, 540, 0, 544, 536, 540, + 545, 542, 547, 541, 539, 543, 544, 546, 549, 545, + 550, 546, 543, 544, 613, 540, 545, 547, 546, 548, - 535, 540, 534, 539, 538, 542, 543, 0, 547, 544, - 539, 544, 542, 543, 540, 541, 541, 545, 0, 548, - 539, 540, 544, 549, 545, 542, 543, 546, 547, 544, - 539, 551, 542, 543, 546, 547, 544, 550, 544, 548, - 595, 0, 553, 549, 545, 554, 548, 546, 556, 544, - 549, 551, 550, 552, 546, 547, 544, 550, 551, 554, - 552, 546, 553, 555, 550, 554, 548, 595, 556, 553, - 549, 0, 554, 552, 546, 556, 555, 558, 551, 550, - 552, 559, 562, 555, 550, 560, 554, 552, 0, 553, - 555, 557, 554, 557, 559, 556, 563, 558, 560, 561, + 551, 542, 547, 548, 544, 614, 0, 545, 549, 547, + 550, 553, 543, 544, 546, 549, 545, 550, 546, 554, + 551, 552, 553, 548, 547, 552, 548, 551, 0, 547, + 548, 553, 614, 555, 556, 549, 0, 550, 553, 554, + 615, 0, 555, 558, 0, 552, 554, 551, 552, 553, + 548, 560, 552, 555, 556, 557, 558, 559, 553, 0, + 555, 556, 0, 558, 560, 557, 554, 615, 563, 555, + 558, 560, 552, 561, 616, 557, 559, 559, 560, 0, + 555, 556, 557, 558, 559, 565, 561, 0, 563, 566, + 558, 560, 557, 561, 562, 563, 562, 567, 560, 564, - 552, 559, 562, 555, 558, 560, 0, 561, 559, 562, - 555, 564, 560, 557, 0, 564, 563, 567, 557, 561, - 557, 559, 0, 563, 558, 560, 561, 565, 559, 562, - 567, 565, 560, 566, 561, 564, 0, 567, 564, 569, - 557, 566, 564, 563, 567, 0, 561, 569, 0, 571, - 568, 565, 572, 566, 565, 574, 0, 567, 565, 569, - 566, 570, 564, 570, 567, 568, 569, 573, 566, 571, - 568, 573, 572, 576, 569, 574, 571, 568, 565, 572, - 566, 575, 574, 570, 0, 0, 569, 573, 570, 577, - 570, 575, 568, 576, 573, 580, 571, 568, 573, 572, + 561, 616, 557, 559, 559, 565, 564, 562, 569, 566, + 568, 570, 565, 561, 562, 563, 566, 567, 570, 564, + 561, 562, 571, 562, 567, 568, 564, 573, 569, 0, + 568, 570, 565, 564, 562, 569, 566, 568, 570, 572, + 573, 562, 571, 574, 567, 570, 564, 573, 576, 571, + 0, 577, 568, 572, 573, 569, 580, 568, 570, 572, + 575, 617, 575, 574, 577, 0, 572, 573, 576, 571, + 574, 577, 578, 579, 573, 576, 580, 581, 577, 0, + 572, 579, 575, 580, 619, 578, 572, 575, 617, 575, + 574, 577, 578, 579, 589, 576, 0, 581, 577, 578, - 576, 575, 574, 577, 578, 0, 578, 0, 575, 577, - 570, 580, 579, 581, 573, 580, 577, 581, 575, 0, - 576, 579, 580, 583, 0, 583, 578, 0, 575, 596, - 577, 578, 579, 578, 582, 584, 577, 581, 580, 579, - 581, 597, 580, 583, 581, 585, 587, 586, 579, 582, - 583, 588, 583, 578, 582, 584, 596, 599, 600, 579, - 601, 582, 584, 586, 581, 585, 587, 586, 597, 603, - 583, 588, 585, 587, 586, 604, 582, 605, 588, 606, - 607, 582, 584, 608, 599, 600, 609, 601, 610, 611, - 586, 613, 585, 587, 586, 614, 603, 615, 588, 618, + 579, 582, 583, 580, 581, 582, 583, 584, 579, 575, + 585, 619, 578, 0, 589, 584, 586, 0, 620, 578, + 579, 589, 0, 585, 581, 582, 583, 584, 582, 583, + 585, 586, 582, 583, 584, 590, 586, 585, 588, 587, + 588, 589, 584, 586, 591, 620, 621, 587, 591, 592, + 585, 0, 582, 583, 584, 590, 0, 585, 586, 587, + 588, 0, 590, 586, 591, 588, 587, 588, 593, 592, + 594, 591, 595, 621, 587, 591, 592, 0, 593, 597, + 596, 597, 590, 603, 598, 600, 587, 588, 593, 600, + 594, 591, 595, 598, 596, 593, 592, 594, 599, 595, - 619, 620, 604, 621, 605, 626, 606, 607, 627, 628, - 608, 631, 632, 609, 633, 610, 611, 634, 613, 635, - 637, 638, 614, 639, 615, 640, 618, 619, 620, 641, - 621, 642, 626, 643, 644, 627, 628, 646, 631, 632, - 647, 633, 648, 650, 634, 651, 635, 637, 638, 0, - 639, 653, 640, 654, 655, 717, 641, 656, 642, 657, - 643, 644, 658, 658, 646, 719, 720, 647, 661, 648, - 650, 653, 651, 654, 655, 655, 659, 656, 653, 657, - 654, 655, 717, 658, 656, 659, 657, 660, 661, 658, - 658, 662, 719, 720, 0, 661, 659, 660, 653, 663, + 596, 597, 623, 603, 598, 593, 597, 596, 597, 600, + 603, 598, 600, 604, 599, 593, 600, 594, 599, 595, + 598, 596, 601, 605, 602, 599, 602, 596, 597, 623, + 603, 598, 606, 604, 607, 608, 600, 601, 624, 605, + 604, 599, 601, 605, 602, 599, 625, 626, 627, 601, + 605, 602, 606, 602, 607, 608, 628, 629, 630, 606, + 604, 607, 608, 631, 601, 624, 605, 633, 634, 601, + 605, 602, 635, 625, 626, 627, 638, 639, 640, 606, + 641, 607, 608, 628, 629, 630, 646, 647, 648, 651, + 631, 652, 653, 654, 633, 634, 655, 657, 658, 635, - 654, 655, 655, 659, 656, 665, 657, 660, 666, 663, - 658, 662, 659, 664, 660, 661, 721, 722, 662, 663, - 664, 668, 667, 659, 660, 665, 663, 0, 666, 0, - 668, 669, 665, 664, 660, 666, 663, 667, 662, 670, - 664, 668, 667, 721, 722, 724, 663, 664, 668, 667, - 671, 669, 665, 673, 675, 666, 672, 668, 669, 670, - 664, 675, 676, 0, 667, 671, 670, 673, 668, 667, - 671, 672, 724, 673, 675, 674, 672, 671, 669, 674, - 673, 675, 676, 672, 0, 677, 670, 677, 675, 676, - 680, 678, 671, 679, 673, 674, 681, 671, 672, 725, + 659, 660, 661, 638, 639, 640, 662, 641, 663, 664, + 666, 667, 668, 646, 647, 648, 651, 670, 652, 653, + 654, 671, 673, 655, 657, 658, 674, 659, 660, 661, + 675, 737, 676, 662, 677, 663, 664, 666, 667, 668, + 739, 740, 673, 0, 670, 741, 674, 0, 671, 673, + 675, 675, 676, 674, 677, 678, 678, 675, 737, 676, + 680, 677, 0, 0, 681, 679, 682, 739, 740, 673, + 680, 0, 741, 674, 679, 685, 678, 675, 675, 676, + 680, 677, 678, 678, 681, 679, 682, 680, 683, 684, + 686, 681, 679, 682, 742, 685, 684, 680, 683, 687, - 673, 675, 674, 672, 678, 677, 674, 0, 679, 676, - 680, 678, 677, 679, 677, 0, 681, 680, 678, 682, - 679, 683, 674, 681, 0, 686, 725, 687, 0, 685, - 684, 678, 677, 688, 682, 679, 685, 680, 678, 682, - 679, 683, 689, 681, 684, 686, 682, 687, 683, 685, - 684, 690, 686, 688, 687, 690, 685, 684, 0, 693, - 688, 682, 689, 685, 691, 728, 682, 691, 683, 689, - 692, 684, 686, 694, 687, 690, 685, 684, 690, 693, - 688, 695, 690, 696, 691, 692, 693, 698, 0, 689, - 692, 691, 728, 694, 691, 699, 696, 692, 0, 699, + 0, 679, 685, 678, 689, 744, 745, 680, 683, 684, + 686, 681, 679, 682, 687, 683, 684, 686, 688, 687, + 690, 742, 685, 684, 689, 683, 687, 688, 691, 692, + 694, 689, 744, 745, 694, 683, 684, 686, 688, 693, + 690, 687, 0, 691, 692, 688, 687, 690, 691, 692, + 694, 689, 696, 693, 688, 691, 692, 694, 697, 693, + 697, 694, 695, 748, 700, 688, 693, 690, 698, 695, + 691, 692, 696, 701, 703, 691, 692, 694, 697, 696, + 693, 698, 695, 699, 700, 697, 693, 697, 698, 695, + 748, 700, 702, 701, 703, 698, 695, 705, 699, 696, - 694, 695, 690, 696, 700, 697, 693, 698, 695, 701, - 696, 691, 692, 701, 698, 699, 732, 692, 697, 734, - 694, 737, 699, 696, 700, 697, 699, 705, 695, 702, - 696, 700, 697, 701, 698, 704, 701, 703, 703, 704, - 701, 705, 699, 732, 702, 697, 734, 705, 737, 702, - 706, 700, 697, 709, 705, 0, 702, 708, 703, 704, - 701, 708, 704, 706, 703, 703, 704, 707, 705, 710, - 706, 702, 0, 709, 705, 712, 702, 706, 711, 711, - 709, 708, 707, 713, 708, 703, 704, 707, 708, 710, - 706, 740, 716, 714, 707, 712, 710, 706, 741, 711, + 701, 703, 704, 699, 705, 697, 706, 702, 698, 695, + 699, 700, 702, 0, 752, 698, 704, 705, 707, 702, + 701, 703, 704, 0, 705, 699, 706, 708, 709, 704, + 699, 705, 710, 706, 702, 0, 710, 711, 707, 702, + 711, 752, 713, 704, 705, 707, 712, 708, 709, 704, + 714, 715, 754, 706, 708, 709, 710, 711, 0, 710, + 718, 712, 713, 710, 711, 707, 712, 711, 0, 713, + 714, 715, 716, 712, 708, 709, 720, 714, 715, 754, + 718, 717, 719, 710, 711, 716, 719, 718, 712, 713, + 722, 721, 716, 712, 717, 721, 720, 714, 715, 716, - 709, 743, 712, 713, 744, 711, 711, 714, 708, 707, - 713, 715, 716, 714, 707, 715, 710, 746, 740, 716, - 714, 747, 712, 748, 750, 741, 711, 751, 743, 754, - 713, 744, 756, 757, 714, 715, 758, 763, 715, 716, - 714, 764, 715, 816, 746, 765, 766, 767, 747, 0, - 748, 750, 0, 0, 751, 766, 754, 768, 770, 756, - 757, 764, 715, 758, 763, 765, 766, 767, 764, 769, - 816, 768, 765, 766, 767, 772, 769, 768, 770, 771, - 773, 771, 766, 0, 768, 770, 0, 0, 764, 769, - 772, 774, 765, 766, 767, 772, 769, 775, 768, 775, + 0, 717, 719, 720, 0, 722, 757, 718, 717, 719, + 722, 727, 716, 719, 726, 721, 724, 722, 721, 716, + 724, 717, 721, 720, 723, 723, 727, 726, 717, 719, + 725, 727, 722, 757, 726, 728, 729, 722, 727, 728, + 724, 726, 721, 724, 725, 723, 0, 724, 730, 732, + 725, 723, 723, 727, 726, 760, 729, 725, 727, 728, + 733, 726, 728, 729, 731, 731, 728, 724, 730, 732, + 734, 725, 723, 736, 735, 730, 732, 725, 735, 761, + 733, 763, 760, 729, 734, 731, 728, 733, 764, 766, + 734, 731, 731, 736, 767, 730, 732, 734, 735, 768, - 773, 771, 772, 769, 768, 770, 771, 773, 771, 776, - 777, 774, 778, 779, 780, 818, 769, 772, 774, 775, - 0, 0, 772, 782, 775, 783, 775, 773, 771, 776, - 777, 784, 778, 779, 780, 781, 776, 777, 774, 778, - 779, 780, 818, 782, 781, 783, 775, 785, 786, 788, - 782, 784, 783, 787, 0, 781, 776, 777, 784, 778, - 779, 780, 781, 789, 823, 825, 787, 785, 786, 788, - 782, 781, 783, 787, 785, 786, 788, 790, 784, 792, - 787, 791, 781, 789, 790, 791, 0, 793, 0, 794, - 789, 823, 825, 787, 785, 786, 788, 790, 795, 792, + 736, 735, 770, 771, 774, 735, 761, 733, 763, 776, + 777, 734, 731, 778, 783, 764, 766, 734, 784, 785, + 736, 767, 787, 786, 790, 735, 768, 0, 789, 770, + 771, 774, 786, 788, 836, 789, 776, 777, 784, 785, + 778, 783, 787, 786, 790, 784, 785, 788, 789, 787, + 786, 790, 792, 788, 791, 789, 791, 793, 794, 786, + 788, 836, 789, 0, 0, 784, 785, 792, 838, 787, + 786, 790, 792, 796, 788, 789, 791, 793, 794, 792, + 788, 791, 797, 791, 793, 794, 795, 798, 795, 0, + 799, 800, 801, 796, 792, 838, 802, 0, 0, 792, - 787, 796, 793, 798, 790, 791, 792, 793, 791, 794, - 789, 790, 791, 797, 793, 797, 794, 798, 795, 799, - 0, 796, 826, 798, 790, 795, 792, 800, 796, 793, - 798, 801, 791, 802, 793, 797, 794, 803, 801, 799, - 797, 803, 797, 0, 798, 795, 799, 800, 796, 826, - 798, 801, 804, 802, 800, 805, 804, 806, 801, 829, - 802, 803, 797, 832, 803, 801, 799, 807, 803, 808, - 805, 809, 833, 834, 800, 805, 804, 806, 801, 804, - 802, 836, 805, 804, 806, 810, 829, 807, 803, 808, - 832, 809, 810, 837, 807, 838, 808, 805, 809, 833, + 796, 801, 797, 791, 793, 794, 803, 798, 795, 797, + 799, 800, 801, 795, 798, 795, 802, 799, 800, 801, + 796, 804, 805, 802, 806, 808, 803, 807, 801, 797, + 809, 0, 811, 803, 798, 795, 811, 799, 800, 801, + 807, 804, 805, 802, 806, 808, 812, 807, 804, 805, + 809, 806, 808, 803, 807, 810, 811, 809, 814, 811, + 815, 813, 810, 811, 816, 0, 812, 807, 804, 805, + 843, 806, 808, 812, 807, 810, 813, 809, 814, 0, + 815, 813, 810, 811, 816, 814, 818, 815, 813, 810, + 817, 816, 817, 812, 819, 820, 845, 843, 822, 0, - 834, 836, 805, 804, 806, 810, 839, 840, 836, 842, - 843, 844, 810, 837, 807, 838, 808, 841, 809, 810, - 837, 841, 838, 845, 0, 843, 839, 840, 836, 842, - 843, 844, 810, 839, 840, 846, 842, 843, 844, 847, - 837, 841, 838, 845, 841, 848, 0, 848, 841, 849, - 845, 850, 843, 839, 840, 846, 842, 843, 844, 847, - 851, 852, 846, 853, 850, 0, 847, 848, 841, 849, - 845, 850, 848, 855, 848, 856, 849, 854, 850, 859, - 851, 852, 846, 853, 0, 860, 847, 851, 852, 861, - 853, 850, 854, 855, 848, 856, 849, 854, 850, 859, + 818, 0, 810, 813, 846, 814, 818, 815, 813, 821, + 849, 816, 817, 818, 819, 820, 821, 817, 822, 817, + 823, 819, 820, 845, 823, 822, 824, 818, 826, 821, + 824, 846, 827, 818, 825, 0, 821, 849, 828, 817, + 829, 819, 820, 821, 823, 822, 852, 823, 826, 825, + 824, 823, 827, 824, 825, 826, 821, 824, 828, 827, + 829, 825, 830, 853, 854, 828, 856, 829, 857, 830, + 0, 823, 858, 852, 859, 826, 825, 824, 860, 827, + 861, 825, 830, 862, 861, 828, 856, 829, 857, 830, + 853, 854, 858, 856, 859, 857, 830, 863, 860, 858, - 855, 857, 856, 858, 854, 860, 859, 851, 852, 863, - 853, 858, 860, 865, 857, 867, 861, 868, 0, 854, - 855, 857, 856, 858, 854, 871, 859, 0, 857, 0, - 858, 870, 860, 873, 872, 875, 863, 876, 858, 0, - 865, 857, 867, 874, 868, 871, 870, 878, 857, 872, - 858, 870, 871, 873, 872, 875, 874, 876, 870, 0, - 873, 872, 875, 874, 876, 879, 877, 878, 881, 884, - 874, 885, 871, 870, 878, 0, 872, 877, 870, 0, - 873, 872, 875, 874, 876, 886, 877, 887, 888, 884, - 874, 885, 879, 877, 878, 881, 884, 891, 885, 886, + 864, 859, 865, 862, 861, 860, 866, 861, 867, 830, + 862, 861, 863, 856, 868, 857, 868, 863, 869, 858, + 864, 859, 865, 0, 863, 860, 866, 864, 867, 865, + 862, 861, 871, 866, 872, 867, 868, 870, 869, 863, + 873, 868, 875, 868, 863, 869, 881, 864, 876, 865, + 870, 874, 871, 866, 872, 867, 0, 870, 883, 871, + 873, 872, 875, 868, 870, 869, 874, 873, 876, 875, + 877, 874, 878, 881, 879, 876, 880, 870, 874, 871, + 878, 872, 885, 877, 870, 883, 887, 873, 888, 875, + 877, 890, 878, 874, 879, 876, 880, 877, 874, 878, - 892, 0, 0, 0, 877, 886, 0, 887, 888, 0, - 0, 0, 886, 877, 887, 888, 884, 891, 885, 0, - 892, 0, 0, 0, 891, 0, 886, 892, 0, 0, - 0, 0, 886, 0, 887, 888, 0, 0, 0, 0, - 0, 0, 0, 0, 891, 0, 0, 892, 894, 0, - 0, 894, 895, 0, 895, 895, 897, 0, 897, 897, - 898, 0, 898, 898, 899, 0, 899, 899, 900, 0, - 900, 900, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, + 891, 879, 0, 880, 893, 0, 890, 878, 895, 885, + 877, 890, 894, 887, 892, 888, 896, 877, 890, 878, + 891, 879, 898, 880, 893, 894, 897, 891, 895, 892, + 899, 893, 894, 890, 892, 895, 896, 897, 890, 894, + 901, 892, 898, 896, 0, 904, 897, 891, 905, 898, + 907, 893, 894, 897, 0, 895, 892, 899, 908, 894, + 906, 892, 911, 896, 897, 904, 912, 901, 905, 898, + 907, 0, 904, 897, 906, 905, 0, 907, 908, 0, + 906, 0, 911, 0, 0, 908, 912, 906, 0, 911, + 0, 0, 904, 912, 0, 905, 0, 907, 0, 0, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, - 893, 893, 893, 893, 893, 893, 893, 893 + 0, 906, 0, 0, 0, 908, 0, 906, 0, 911, + 0, 0, 0, 912, 914, 0, 0, 914, 915, 0, + 915, 915, 917, 0, 917, 917, 918, 0, 918, 918, + 919, 0, 919, 919, 920, 0, 920, 920, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + + 913, 913, 913, 913 } ; /* The intent behind this definition is that it'll catch @@ -1563,7 +1585,7 @@ static yyconst flex_int16_t yy_chk[3639] = /*************************** ** Section 3: Rules ***************************/ -#line 1567 "flex_lexer.cpp" +#line 1589 "flex_lexer.cpp" #define INITIAL 0 #define COMMENT 1 @@ -1811,7 +1833,7 @@ YY_DECL #line 51 "flex_lexer.l" -#line 1815 "flex_lexer.cpp" +#line 1837 "flex_lexer.cpp" yylval = yylval_param; @@ -1868,13 +1890,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 >= 894 ) + if ( yy_current_state >= 914 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 893 ); + while ( yy_current_state != 913 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -1913,639 +1935,664 @@ BEGIN(INITIAL); case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 58 "flex_lexer.l" +#line 57 "flex_lexer.l" /* skip whitespace */; YY_BREAK case 5: YY_RULE_SETUP -#line 62 "flex_lexer.l" +#line 59 "flex_lexer.l" TOKEN(DEALLOCATE) YY_BREAK case 6: YY_RULE_SETUP -#line 63 "flex_lexer.l" +#line 60 "flex_lexer.l" TOKEN(PARAMETERS) YY_BREAK case 7: YY_RULE_SETUP -#line 64 "flex_lexer.l" +#line 61 "flex_lexer.l" TOKEN(INTERSECT) YY_BREAK case 8: YY_RULE_SETUP -#line 65 "flex_lexer.l" +#line 62 "flex_lexer.l" TOKEN(TEMPORARY) YY_BREAK case 9: YY_RULE_SETUP -#line 66 "flex_lexer.l" +#line 63 "flex_lexer.l" TOKEN(TIMESTAMP) YY_BREAK case 10: YY_RULE_SETUP -#line 67 "flex_lexer.l" +#line 64 "flex_lexer.l" TOKEN(DISTINCT) YY_BREAK case 11: YY_RULE_SETUP -#line 68 "flex_lexer.l" +#line 65 "flex_lexer.l" TOKEN(NVARCHAR) YY_BREAK case 12: YY_RULE_SETUP -#line 69 "flex_lexer.l" +#line 66 "flex_lexer.l" TOKEN(RESTRICT) YY_BREAK case 13: YY_RULE_SETUP -#line 70 "flex_lexer.l" +#line 67 "flex_lexer.l" TOKEN(TRUNCATE) YY_BREAK case 14: YY_RULE_SETUP -#line 71 "flex_lexer.l" +#line 68 "flex_lexer.l" TOKEN(ANALYZE) YY_BREAK case 15: YY_RULE_SETUP -#line 72 "flex_lexer.l" +#line 69 "flex_lexer.l" TOKEN(BETWEEN) YY_BREAK case 16: YY_RULE_SETUP -#line 73 "flex_lexer.l" +#line 70 "flex_lexer.l" TOKEN(CASCADE) YY_BREAK case 17: YY_RULE_SETUP -#line 74 "flex_lexer.l" +#line 71 "flex_lexer.l" TOKEN(COLUMNS) YY_BREAK case 18: YY_RULE_SETUP -#line 75 "flex_lexer.l" +#line 72 "flex_lexer.l" TOKEN(CONTROL) YY_BREAK case 19: YY_RULE_SETUP -#line 76 "flex_lexer.l" +#line 73 "flex_lexer.l" TOKEN(DEFAULT) YY_BREAK case 20: YY_RULE_SETUP -#line 77 "flex_lexer.l" +#line 74 "flex_lexer.l" TOKEN(EXECUTE) YY_BREAK case 21: YY_RULE_SETUP -#line 78 "flex_lexer.l" +#line 75 "flex_lexer.l" TOKEN(EXPLAIN) YY_BREAK case 22: YY_RULE_SETUP -#line 79 "flex_lexer.l" +#line 76 "flex_lexer.l" TOKEN(HISTORY) YY_BREAK case 23: YY_RULE_SETUP -#line 80 "flex_lexer.l" +#line 77 "flex_lexer.l" TOKEN(INTEGER) YY_BREAK case 24: YY_RULE_SETUP -#line 81 "flex_lexer.l" +#line 78 "flex_lexer.l" TOKEN(NATURAL) YY_BREAK case 25: YY_RULE_SETUP -#line 82 "flex_lexer.l" +#line 79 "flex_lexer.l" TOKEN(PREPARE) YY_BREAK case 26: YY_RULE_SETUP -#line 83 "flex_lexer.l" +#line 80 "flex_lexer.l" TOKEN(PRIMARY) YY_BREAK case 27: YY_RULE_SETUP -#line 84 "flex_lexer.l" +#line 81 "flex_lexer.l" TOKEN(SCHEMAS) YY_BREAK case 28: YY_RULE_SETUP -#line 85 "flex_lexer.l" +#line 82 "flex_lexer.l" TOKEN(SPATIAL) YY_BREAK case 29: YY_RULE_SETUP -#line 86 "flex_lexer.l" +#line 83 "flex_lexer.l" TOKEN(VIRTUAL) YY_BREAK case 30: YY_RULE_SETUP -#line 87 "flex_lexer.l" +#line 84 "flex_lexer.l" TOKEN(BEFORE) YY_BREAK case 31: YY_RULE_SETUP -#line 88 "flex_lexer.l" +#line 85 "flex_lexer.l" TOKEN(COLUMN) YY_BREAK case 32: YY_RULE_SETUP -#line 89 "flex_lexer.l" +#line 86 "flex_lexer.l" TOKEN(CREATE) YY_BREAK case 33: YY_RULE_SETUP -#line 90 "flex_lexer.l" +#line 87 "flex_lexer.l" TOKEN(DELETE) YY_BREAK case 34: YY_RULE_SETUP -#line 91 "flex_lexer.l" +#line 88 "flex_lexer.l" TOKEN(DIRECT) YY_BREAK case 35: YY_RULE_SETUP -#line 92 "flex_lexer.l" +#line 89 "flex_lexer.l" TOKEN(DOUBLE) YY_BREAK case 36: YY_RULE_SETUP -#line 93 "flex_lexer.l" +#line 90 "flex_lexer.l" TOKEN(ESCAPE) YY_BREAK case 37: YY_RULE_SETUP -#line 94 "flex_lexer.l" +#line 91 "flex_lexer.l" TOKEN(EXCEPT) YY_BREAK case 38: YY_RULE_SETUP -#line 95 "flex_lexer.l" +#line 92 "flex_lexer.l" TOKEN(EXISTS) YY_BREAK case 39: YY_RULE_SETUP -#line 96 "flex_lexer.l" +#line 93 "flex_lexer.l" TOKEN(GLOBAL) YY_BREAK case 40: YY_RULE_SETUP -#line 97 "flex_lexer.l" +#line 94 "flex_lexer.l" TOKEN(HAVING) YY_BREAK case 41: YY_RULE_SETUP -#line 98 "flex_lexer.l" +#line 95 "flex_lexer.l" TOKEN(IMPORT) YY_BREAK case 42: YY_RULE_SETUP -#line 99 "flex_lexer.l" +#line 96 "flex_lexer.l" TOKEN(INSERT) YY_BREAK case 43: YY_RULE_SETUP -#line 100 "flex_lexer.l" +#line 97 "flex_lexer.l" TOKEN(ISNULL) YY_BREAK case 44: YY_RULE_SETUP -#line 101 "flex_lexer.l" +#line 98 "flex_lexer.l" TOKEN(OFFSET) YY_BREAK case 45: YY_RULE_SETUP -#line 102 "flex_lexer.l" +#line 99 "flex_lexer.l" TOKEN(RENAME) YY_BREAK case 46: YY_RULE_SETUP -#line 103 "flex_lexer.l" +#line 100 "flex_lexer.l" TOKEN(SCHEMA) YY_BREAK case 47: YY_RULE_SETUP -#line 104 "flex_lexer.l" +#line 101 "flex_lexer.l" TOKEN(SELECT) YY_BREAK case 48: YY_RULE_SETUP -#line 105 "flex_lexer.l" +#line 102 "flex_lexer.l" TOKEN(SORTED) YY_BREAK case 49: YY_RULE_SETUP -#line 106 "flex_lexer.l" +#line 103 "flex_lexer.l" TOKEN(TABLES) YY_BREAK case 50: YY_RULE_SETUP -#line 107 "flex_lexer.l" +#line 104 "flex_lexer.l" TOKEN(UNIQUE) YY_BREAK case 51: YY_RULE_SETUP -#line 108 "flex_lexer.l" +#line 105 "flex_lexer.l" TOKEN(UNLOAD) YY_BREAK case 52: YY_RULE_SETUP -#line 109 "flex_lexer.l" +#line 106 "flex_lexer.l" TOKEN(UPDATE) YY_BREAK case 53: YY_RULE_SETUP -#line 110 "flex_lexer.l" +#line 107 "flex_lexer.l" TOKEN(VALUES) YY_BREAK case 54: YY_RULE_SETUP -#line 111 "flex_lexer.l" +#line 108 "flex_lexer.l" TOKEN(AFTER) YY_BREAK case 55: YY_RULE_SETUP -#line 112 "flex_lexer.l" +#line 109 "flex_lexer.l" TOKEN(ALTER) YY_BREAK case 56: YY_RULE_SETUP -#line 113 "flex_lexer.l" +#line 110 "flex_lexer.l" TOKEN(CROSS) YY_BREAK case 57: YY_RULE_SETUP -#line 114 "flex_lexer.l" +#line 111 "flex_lexer.l" TOKEN(DELTA) YY_BREAK case 58: YY_RULE_SETUP -#line 115 "flex_lexer.l" +#line 112 "flex_lexer.l" TOKEN(GROUP) YY_BREAK case 59: YY_RULE_SETUP -#line 116 "flex_lexer.l" +#line 113 "flex_lexer.l" TOKEN(INDEX) YY_BREAK case 60: YY_RULE_SETUP -#line 117 "flex_lexer.l" +#line 114 "flex_lexer.l" TOKEN(INNER) YY_BREAK case 61: YY_RULE_SETUP -#line 118 "flex_lexer.l" +#line 115 "flex_lexer.l" TOKEN(LIMIT) YY_BREAK case 62: YY_RULE_SETUP -#line 119 "flex_lexer.l" +#line 116 "flex_lexer.l" TOKEN(LOCAL) YY_BREAK case 63: YY_RULE_SETUP -#line 120 "flex_lexer.l" +#line 117 "flex_lexer.l" TOKEN(MERGE) YY_BREAK case 64: YY_RULE_SETUP -#line 121 "flex_lexer.l" +#line 118 "flex_lexer.l" TOKEN(MINUS) YY_BREAK case 65: YY_RULE_SETUP -#line 122 "flex_lexer.l" +#line 119 "flex_lexer.l" TOKEN(ORDER) YY_BREAK case 66: YY_RULE_SETUP -#line 123 "flex_lexer.l" +#line 120 "flex_lexer.l" TOKEN(OUTER) YY_BREAK case 67: YY_RULE_SETUP -#line 124 "flex_lexer.l" +#line 121 "flex_lexer.l" TOKEN(RIGHT) YY_BREAK case 68: YY_RULE_SETUP -#line 125 "flex_lexer.l" +#line 122 "flex_lexer.l" TOKEN(TABLE) YY_BREAK case 69: YY_RULE_SETUP -#line 126 "flex_lexer.l" +#line 123 "flex_lexer.l" TOKEN(UNION) YY_BREAK case 70: YY_RULE_SETUP -#line 127 "flex_lexer.l" +#line 124 "flex_lexer.l" TOKEN(USING) YY_BREAK case 71: YY_RULE_SETUP -#line 128 "flex_lexer.l" +#line 125 "flex_lexer.l" TOKEN(WHERE) YY_BREAK case 72: YY_RULE_SETUP -#line 129 "flex_lexer.l" +#line 126 "flex_lexer.l" TOKEN(CALL) YY_BREAK case 73: YY_RULE_SETUP -#line 130 "flex_lexer.l" -TOKEN(DATE) +#line 127 "flex_lexer.l" +TOKEN(CASE) YY_BREAK case 74: YY_RULE_SETUP -#line 131 "flex_lexer.l" -TOKEN(DESC) +#line 128 "flex_lexer.l" +TOKEN(DATE) YY_BREAK case 75: YY_RULE_SETUP -#line 132 "flex_lexer.l" -TOKEN(DROP) +#line 129 "flex_lexer.l" +TOKEN(DESC) YY_BREAK case 76: YY_RULE_SETUP -#line 133 "flex_lexer.l" -TOKEN(FILE) +#line 130 "flex_lexer.l" +TOKEN(DROP) YY_BREAK case 77: YY_RULE_SETUP -#line 134 "flex_lexer.l" -TOKEN(FROM) +#line 131 "flex_lexer.l" +TOKEN(ELSE) YY_BREAK case 78: YY_RULE_SETUP -#line 135 "flex_lexer.l" -TOKEN(FULL) +#line 132 "flex_lexer.l" +TOKEN(FILE) YY_BREAK case 79: YY_RULE_SETUP -#line 136 "flex_lexer.l" -TOKEN(HASH) +#line 133 "flex_lexer.l" +TOKEN(FROM) YY_BREAK case 80: YY_RULE_SETUP -#line 137 "flex_lexer.l" -TOKEN(HINT) +#line 134 "flex_lexer.l" +TOKEN(FULL) YY_BREAK case 81: YY_RULE_SETUP -#line 138 "flex_lexer.l" -TOKEN(INTO) +#line 135 "flex_lexer.l" +TOKEN(HASH) YY_BREAK case 82: YY_RULE_SETUP -#line 139 "flex_lexer.l" -TOKEN(JOIN) +#line 136 "flex_lexer.l" +TOKEN(HINT) YY_BREAK case 83: YY_RULE_SETUP -#line 140 "flex_lexer.l" -TOKEN(LEFT) +#line 137 "flex_lexer.l" +TOKEN(INTO) YY_BREAK case 84: YY_RULE_SETUP -#line 141 "flex_lexer.l" -TOKEN(LIKE) +#line 138 "flex_lexer.l" +TOKEN(JOIN) YY_BREAK case 85: YY_RULE_SETUP -#line 142 "flex_lexer.l" -TOKEN(LOAD) +#line 139 "flex_lexer.l" +TOKEN(LEFT) YY_BREAK case 86: YY_RULE_SETUP -#line 143 "flex_lexer.l" -TOKEN(NULL) +#line 140 "flex_lexer.l" +TOKEN(LIKE) YY_BREAK case 87: YY_RULE_SETUP -#line 144 "flex_lexer.l" -TOKEN(PART) +#line 141 "flex_lexer.l" +TOKEN(LOAD) YY_BREAK case 88: YY_RULE_SETUP -#line 145 "flex_lexer.l" -TOKEN(PLAN) +#line 142 "flex_lexer.l" +TOKEN(NULL) YY_BREAK case 89: YY_RULE_SETUP -#line 146 "flex_lexer.l" -TOKEN(SHOW) +#line 143 "flex_lexer.l" +TOKEN(PART) YY_BREAK case 90: YY_RULE_SETUP -#line 147 "flex_lexer.l" -TOKEN(TEXT) +#line 144 "flex_lexer.l" +TOKEN(PLAN) YY_BREAK case 91: YY_RULE_SETUP +#line 145 "flex_lexer.l" +TOKEN(SHOW) + YY_BREAK +case 92: +YY_RULE_SETUP +#line 146 "flex_lexer.l" +TOKEN(TEXT) + YY_BREAK +case 93: +YY_RULE_SETUP +#line 147 "flex_lexer.l" +TOKEN(THEN) + YY_BREAK +case 94: +YY_RULE_SETUP #line 148 "flex_lexer.l" TOKEN(TIME) YY_BREAK -case 92: +case 95: YY_RULE_SETUP #line 149 "flex_lexer.l" TOKEN(VIEW) YY_BREAK -case 93: -YY_RULE_SETUP -#line 150 "flex_lexer.l" -TOKEN(WITH) - YY_BREAK -case 94: -YY_RULE_SETUP -#line 151 "flex_lexer.l" -TOKEN(ADD) - YY_BREAK -case 95: -YY_RULE_SETUP -#line 152 "flex_lexer.l" -TOKEN(ALL) - YY_BREAK case 96: YY_RULE_SETUP -#line 153 "flex_lexer.l" -TOKEN(AND) +#line 150 "flex_lexer.l" +TOKEN(WHEN) YY_BREAK case 97: YY_RULE_SETUP -#line 154 "flex_lexer.l" -TOKEN(ASC) +#line 151 "flex_lexer.l" +TOKEN(WITH) YY_BREAK case 98: YY_RULE_SETUP -#line 155 "flex_lexer.l" -TOKEN(CSV) +#line 152 "flex_lexer.l" +TOKEN(ADD) YY_BREAK case 99: YY_RULE_SETUP -#line 156 "flex_lexer.l" -TOKEN(FOR) +#line 153 "flex_lexer.l" +TOKEN(ALL) YY_BREAK case 100: YY_RULE_SETUP -#line 157 "flex_lexer.l" -TOKEN(INT) +#line 154 "flex_lexer.l" +TOKEN(AND) YY_BREAK case 101: YY_RULE_SETUP -#line 158 "flex_lexer.l" -TOKEN(KEY) +#line 155 "flex_lexer.l" +TOKEN(ASC) YY_BREAK case 102: YY_RULE_SETUP -#line 159 "flex_lexer.l" -TOKEN(NOT) +#line 156 "flex_lexer.l" +TOKEN(CSV) YY_BREAK case 103: YY_RULE_SETUP -#line 160 "flex_lexer.l" -TOKEN(OFF) +#line 157 "flex_lexer.l" +TOKEN(END) YY_BREAK case 104: YY_RULE_SETUP -#line 161 "flex_lexer.l" -TOKEN(SET) +#line 158 "flex_lexer.l" +TOKEN(FOR) YY_BREAK case 105: YY_RULE_SETUP -#line 162 "flex_lexer.l" -TOKEN(TBL) +#line 159 "flex_lexer.l" +TOKEN(INT) YY_BREAK case 106: YY_RULE_SETUP -#line 163 "flex_lexer.l" -TOKEN(TOP) +#line 160 "flex_lexer.l" +TOKEN(KEY) YY_BREAK case 107: YY_RULE_SETUP -#line 164 "flex_lexer.l" -TOKEN(AS) +#line 161 "flex_lexer.l" +TOKEN(NOT) YY_BREAK case 108: YY_RULE_SETUP -#line 165 "flex_lexer.l" -TOKEN(BY) +#line 162 "flex_lexer.l" +TOKEN(OFF) YY_BREAK case 109: YY_RULE_SETUP -#line 166 "flex_lexer.l" -TOKEN(IF) +#line 163 "flex_lexer.l" +TOKEN(SET) YY_BREAK case 110: YY_RULE_SETUP -#line 167 "flex_lexer.l" -TOKEN(IN) +#line 164 "flex_lexer.l" +TOKEN(TBL) YY_BREAK case 111: YY_RULE_SETUP -#line 168 "flex_lexer.l" -TOKEN(IS) +#line 165 "flex_lexer.l" +TOKEN(TOP) YY_BREAK case 112: YY_RULE_SETUP -#line 169 "flex_lexer.l" -TOKEN(OF) +#line 166 "flex_lexer.l" +TOKEN(AS) YY_BREAK case 113: YY_RULE_SETUP -#line 170 "flex_lexer.l" -TOKEN(ON) +#line 167 "flex_lexer.l" +TOKEN(BY) YY_BREAK case 114: YY_RULE_SETUP -#line 171 "flex_lexer.l" -TOKEN(OR) +#line 168 "flex_lexer.l" +TOKEN(IF) YY_BREAK case 115: YY_RULE_SETUP -#line 172 "flex_lexer.l" -TOKEN(TO) +#line 169 "flex_lexer.l" +TOKEN(IN) YY_BREAK case 116: YY_RULE_SETUP -#line 175 "flex_lexer.l" -TOKEN(NOTEQUALS) +#line 170 "flex_lexer.l" +TOKEN(IS) YY_BREAK case 117: YY_RULE_SETUP -#line 176 "flex_lexer.l" -TOKEN(LESSEQ) +#line 171 "flex_lexer.l" +TOKEN(OF) YY_BREAK case 118: YY_RULE_SETUP -#line 177 "flex_lexer.l" -TOKEN(GREATEREQ) +#line 172 "flex_lexer.l" +TOKEN(ON) YY_BREAK case 119: YY_RULE_SETUP +#line 173 "flex_lexer.l" +TOKEN(OR) + YY_BREAK +case 120: +YY_RULE_SETUP +#line 174 "flex_lexer.l" +TOKEN(TO) + YY_BREAK +case 121: +YY_RULE_SETUP +#line 176 "flex_lexer.l" +TOKEN(NOTEQUALS) + YY_BREAK +case 122: +YY_RULE_SETUP +#line 177 "flex_lexer.l" +TOKEN(LESSEQ) + YY_BREAK +case 123: +YY_RULE_SETUP +#line 178 "flex_lexer.l" +TOKEN(GREATEREQ) + YY_BREAK +case 124: +YY_RULE_SETUP #line 180 "flex_lexer.l" { return yytext[0]; } YY_BREAK -case 120: -#line 184 "flex_lexer.l" -case 121: +case 125: +#line 183 "flex_lexer.l" +case 126: YY_RULE_SETUP -#line 184 "flex_lexer.l" +#line 183 "flex_lexer.l" { yylval->fval = atof(yytext); return SQL_FLOATVAL; } YY_BREAK -case 122: +case 127: YY_RULE_SETUP -#line 189 "flex_lexer.l" +#line 188 "flex_lexer.l" { yylval->ival = atol(yytext); return SQL_INTVAL; } YY_BREAK -case 123: +case 128: YY_RULE_SETUP -#line 194 "flex_lexer.l" +#line 193 "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 124: +case 129: YY_RULE_SETUP -#line 200 "flex_lexer.l" +#line 199 "flex_lexer.l" { yylval->sval = strdup(yytext); return SQL_IDENTIFIER; } YY_BREAK -case 125: +case 130: YY_RULE_SETUP -#line 206 "flex_lexer.l" +#line 204 "flex_lexer.l" { // Crop the leading and trailing quote char yylval->sval = hsql::substr(yytext, 1, strlen(yytext)-1); return SQL_STRING; } YY_BREAK -case 126: +case 131: YY_RULE_SETUP -#line 212 "flex_lexer.l" +#line 210 "flex_lexer.l" { fprintf(stderr, "[SQL-Lexer-Error] Unknown Character: %c\n", yytext[0]); return 0; } YY_BREAK -case 127: +case 132: YY_RULE_SETUP -#line 215 "flex_lexer.l" +#line 213 "flex_lexer.l" ECHO; YY_BREAK -#line 2549 "flex_lexer.cpp" +#line 2596 "flex_lexer.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(COMMENT): yyterminate(); @@ -2841,7 +2888,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 >= 894 ) + if ( yy_current_state >= 914 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2870,11 +2917,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 >= 894 ) + if ( yy_current_state >= 914 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 893); + yy_is_jam = (yy_current_state == 913); return yy_is_jam ? 0 : yy_current_state; } @@ -3684,7 +3731,7 @@ void hsql_free (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 215 "flex_lexer.l" +#line 213 "flex_lexer.l" /*************************** diff --git a/src/parser/flex_lexer.h b/src/parser/flex_lexer.h index c91a10a..6a80353 100644 --- a/src/parser/flex_lexer.h +++ b/src/parser/flex_lexer.h @@ -352,7 +352,7 @@ extern int hsql_lex \ #undef YY_DECL #endif -#line 215 "flex_lexer.l" +#line 213 "flex_lexer.l" #line 359 "flex_lexer.h"