diff --git a/src/parser/bison_parser.cpp b/src/parser/bison_parser.cpp index aaac080..d1039ef 100644 --- a/src/parser/bison_parser.cpp +++ b/src/parser/bison_parser.cpp @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.1. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.1" +#define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -412,13 +412,13 @@ typedef signed char yytype_int8; #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else -typedef unsigned short yytype_uint16; +typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else -typedef short yytype_int16; +typedef short int yytype_int16; #endif #ifndef YYSIZE_T @@ -430,7 +430,7 @@ typedef short yytype_int16; # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned +# define YYSIZE_T unsigned int # endif #endif @@ -482,7 +482,7 @@ typedef short yytype_int16; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ @@ -635,16 +635,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 52 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 666 +#define YYLAST 653 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 163 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 96 /* YYNRULES -- Number of rules. */ -#define YYNRULES 239 +#define YYNRULES 237 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 431 +#define YYNSTATES 428 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -652,7 +652,7 @@ union yyalloc #define YYMAXUTOK 400 #define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex, without out-of-bounds checking. */ @@ -716,19 +716,19 @@ static const yytype_uint16 yyrline[] = 653, 657, 669, 670, 674, 678, 679, 682, 687, 688, 692, 697, 701, 702, 705, 706, 710, 711, 715, 719, 720, 721, 727, 728, 732, 733, 734, 735, 736, 737, - 738, 739, 746, 747, 751, 752, 756, 757, 761, 771, - 772, 773, 774, 775, 779, 780, 781, 782, 783, 784, - 785, 786, 787, 788, 792, 793, 797, 798, 799, 800, - 801, 805, 806, 807, 808, 809, 810, 811, 812, 813, - 814, 815, 819, 820, 824, 825, 826, 827, 833, 834, - 835, 836, 840, 841, 845, 846, 850, 851, 852, 853, - 854, 855, 856, 860, 861, 865, 869, 870, 871, 872, - 873, 874, 877, 881, 885, 889, 890, 891, 892, 896, - 897, 898, 899, 900, 904, 908, 909, 913, 914, 918, - 922, 926, 938, 939, 949, 950, 954, 955, 964, 965, - 970, 981, 990, 991, 996, 997, 1002, 1003, 1007, 1008, - 1013, 1014, 1022, 1030, 1040, 1059, 1060, 1061, 1062, 1063, - 1064, 1065, 1066, 1067, 1068, 1073, 1082, 1083, 1088, 1089 + 744, 745, 749, 750, 754, 755, 759, 769, 770, 771, + 772, 773, 777, 778, 779, 780, 781, 782, 783, 784, + 785, 786, 790, 791, 795, 796, 797, 798, 799, 803, + 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, + 817, 818, 822, 823, 824, 825, 831, 832, 833, 834, + 838, 839, 843, 844, 848, 849, 850, 851, 852, 853, + 854, 858, 859, 863, 867, 868, 869, 870, 871, 872, + 875, 879, 883, 887, 888, 889, 890, 894, 895, 896, + 897, 898, 902, 906, 907, 911, 912, 916, 920, 924, + 936, 937, 947, 948, 952, 953, 962, 963, 968, 979, + 988, 989, 994, 995, 1000, 1001, 1005, 1006, 1011, 1012, + 1020, 1028, 1038, 1057, 1058, 1059, 1060, 1061, 1062, 1063, + 1064, 1065, 1066, 1071, 1080, 1081, 1086, 1087 }; #endif @@ -811,64 +811,63 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -324 +#define YYPACT_NINF -331 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-324))) + (!!((Yystate) == (-331))) -#define YYTABLE_NINF -235 +#define YYTABLE_NINF -233 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-235))) + (!!((Yytable_value) == (-233))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 325, 25, 48, 65, 88, -40, 17, 19, 36, 22, - 48, -24, 28, -44, 127, 31, -324, 23, 23, -324, - -324, -324, -324, -324, -324, -324, -324, -324, -324, 13, - -324, 16, 138, 26, -324, 15, 108, 96, 96, 48, - 158, 48, 234, 255, 163, -324, 165, 165, 48, -324, - 122, 128, -324, 325, -324, 203, -324, -324, -324, -324, - -324, -44, 196, 193, -44, 130, -324, 310, 24, 311, - 205, 48, 48, 240, -324, 235, 167, -324, -324, -324, - 126, 317, 285, 48, 48, -324, -324, -324, -324, 172, - -324, 263, -324, -324, -324, 126, 263, 234, 5, -324, - -324, -324, -324, -324, -324, -324, -324, 177, 175, -324, - -324, -324, -324, -324, -324, -324, -324, -324, 296, -68, - 167, 126, -324, 334, 336, -14, -121, 185, 188, 92, - 194, 191, 228, -324, 160, 264, 187, -324, 10, 287, - -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, - -324, -324, -324, -324, -324, 212, -62, -324, -324, -324, - -324, 351, 130, 197, -324, -49, 130, -324, 309, 315, - 318, -324, 24, -324, 243, 365, 251, -33, 283, -324, - -324, 99, 218, -324, 4, 9, 329, 49, 126, 118, - -1, 225, 228, 373, 126, 62, 226, -83, 12, 240, - -324, 126, -324, 126, 380, 126, -324, -324, 228, -324, - 228, -71, 230, 79, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 234, - 126, 317, -324, 232, 113, -324, -324, 126, -324, -324, - -324, -324, 234, 234, 234, -324, 307, 555, 121, -324, - -44, 48, -324, 391, 24, -324, 126, -324, -324, 237, - -324, -324, -324, -324, -324, -324, 312, 119, 143, 126, - 126, -324, 329, 304, -19, -324, -324, -44, -324, 302, - -324, 238, -324, 6, -324, 335, -324, -324, -324, 295, - 339, 411, 228, 245, 160, -324, 308, 249, 411, 411, - 411, 411, 426, 426, 426, 426, 62, 62, -109, -109, - -109, -35, 250, -33, -324, 24, -324, 351, -324, -324, - -324, -324, 334, -324, 248, -324, -324, 254, -324, -324, - -324, 93, -324, 365, -324, -324, -324, 132, 137, -324, - 126, 126, 126, -324, 152, 131, 256, -324, 259, 322, - -324, -324, -324, 342, 347, 348, 331, 12, 420, -324, - -324, -324, 305, -324, 228, 411, 160, 272, 141, -324, - -324, 142, -324, -324, 428, 435, -324, 352, -324, -324, - -324, -324, -80, -33, 159, -324, 126, -324, 6, 12, - -324, -324, -324, 12, 384, 286, 126, 373, 288, 147, - -324, -324, -324, 290, 292, -324, -324, -324, -33, -324, - -324, -6, 336, -38, -324, -324, -324, -324, 294, 126, - 153, 126, -324, 21, -33, -324, -324, -33, 298, 301, - -324 + 7, 11, 73, 103, 133, -42, 99, 138, 57, 98, + 73, -37, 26, -39, 225, 75, -331, 139, 139, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, 37, + -331, 17, 234, 101, -331, 93, 171, 156, 156, 73, + 150, 73, 271, 274, 181, -331, 178, 178, 73, -331, + 136, 147, -331, 7, -331, 219, -331, -331, -331, -331, + -331, -39, 212, 199, -39, -4, -331, 324, 45, 325, + 220, 73, 73, 256, -331, 250, 184, -331, -331, -331, + 226, 332, 301, 73, 73, -331, -331, -331, -331, 186, + -331, 276, -331, -331, -331, 226, 276, 226, 91, -331, + -331, -331, -331, -331, -331, -331, -331, 189, 187, -331, + -331, -331, -331, -331, -331, -331, -331, -331, 308, -69, + 184, 226, -331, 348, 354, 63, 62, 201, 203, 97, + 260, 209, 266, -331, 125, 282, 207, -331, 16, 298, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, 231, -63, -331, -331, -331, + -331, 367, -4, 210, -331, -51, -4, 19, 326, -33, + -331, 45, -331, 261, 369, 263, 19, 289, -331, -331, + 27, 229, -331, 13, 18, 331, 179, 226, -20, 96, + 235, 266, 409, 226, 61, 233, -88, 8, 256, -331, + 226, -331, 226, 391, 226, -331, -331, 266, -331, 266, + -60, 238, -28, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 271, 226, + 332, -331, 241, 33, -331, -331, 226, -331, -331, -331, + -331, 226, 226, -331, 315, 542, 39, -331, -39, 73, + -331, 397, 45, -331, 226, -331, -331, 243, -331, -331, + -331, -331, -331, -331, 319, 81, 100, 226, 226, -331, + 331, 313, 122, -331, -331, -39, -331, 294, -331, 245, + -331, 6, -331, 344, -331, -331, -331, 302, 366, 443, + 266, 255, 125, -331, 329, 259, 443, 443, 443, 443, + 477, 477, 477, 477, 61, 61, -38, -38, -38, -74, + 269, 19, -331, 45, -331, 367, -331, 19, 19, 348, + -331, 264, -331, -331, 272, -331, -331, -331, 82, -331, + 369, -331, -331, -331, 127, 132, -331, 226, 226, 226, + -331, 130, 174, 273, -331, 275, 340, -331, -331, -331, + 361, 363, 364, 351, 8, 439, -331, -331, -331, 335, + -331, 266, 443, 125, 287, 134, -331, -331, 145, -331, + -331, 453, 454, -331, 370, -331, -331, -331, -331, -78, + 19, 175, -331, 226, -331, 6, 8, -331, -331, -331, + 8, 392, 304, 226, 409, 309, 158, -331, -331, -331, + 310, 311, -331, -331, -331, 19, -331, -331, 265, 354, + -24, -331, -331, -331, -331, 305, 226, 165, 226, -331, + 20, 19, -331, -331, 19, 307, 312, -331 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -877,79 +876,78 @@ static const yytype_int16 yypact[] = static const yytype_uint8 yydefact[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 0, 237, 3, 18, 18, 16, + 0, 0, 0, 0, 0, 235, 3, 18, 18, 16, 9, 7, 10, 15, 12, 13, 11, 14, 8, 66, - 67, 95, 0, 212, 57, 25, 0, 36, 36, 0, - 0, 0, 0, 83, 0, 211, 55, 55, 0, 30, - 0, 0, 1, 236, 2, 0, 6, 5, 77, 78, - 76, 0, 80, 0, 0, 111, 53, 0, 115, 0, - 0, 0, 0, 89, 28, 0, 61, 199, 102, 82, + 67, 95, 0, 210, 57, 25, 0, 36, 36, 0, + 0, 0, 0, 83, 0, 209, 55, 55, 0, 30, + 0, 0, 1, 234, 2, 0, 6, 5, 77, 78, + 76, 0, 80, 0, 0, 109, 53, 0, 113, 0, + 0, 0, 0, 89, 28, 0, 61, 197, 102, 82, 0, 0, 0, 0, 0, 31, 70, 69, 4, 0, 71, 95, 72, 79, 75, 0, 95, 0, 0, 73, - 213, 194, 197, 200, 195, 196, 201, 0, 114, 116, - 189, 190, 191, 198, 192, 193, 24, 23, 0, 0, - 61, 0, 56, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 187, 0, 86, 84, 112, 221, 119, - 126, 127, 128, 121, 123, 129, 122, 141, 130, 131, - 132, 125, 120, 134, 135, 0, 89, 63, 54, 51, - 52, 0, 111, 94, 96, 101, 111, 106, 108, 107, - 104, 26, 0, 35, 0, 0, 0, 88, 0, 29, - 238, 0, 0, 59, 83, 0, 0, 0, 0, 0, - 0, 0, 0, 137, 0, 136, 0, 0, 0, 89, - 85, 0, 219, 0, 0, 0, 220, 118, 0, 138, + 211, 192, 195, 198, 193, 194, 199, 0, 112, 114, + 187, 188, 189, 196, 190, 191, 24, 23, 0, 0, + 61, 0, 56, 0, 0, 0, 183, 0, 0, 0, + 0, 0, 0, 185, 0, 86, 84, 110, 219, 117, + 124, 125, 126, 119, 121, 127, 120, 139, 128, 129, + 130, 123, 118, 132, 133, 0, 89, 63, 54, 51, + 52, 0, 109, 94, 96, 101, 109, 105, 107, 104, + 26, 0, 35, 0, 0, 0, 88, 0, 29, 236, + 0, 0, 59, 83, 0, 0, 0, 0, 0, 0, + 0, 0, 135, 0, 134, 0, 0, 0, 89, 85, + 0, 217, 0, 0, 0, 218, 116, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 21, 0, 19, 68, 0, 100, 99, - 98, 74, 0, 0, 0, 117, 0, 0, 0, 37, - 0, 0, 60, 0, 0, 173, 0, 186, 188, 0, - 176, 177, 178, 179, 180, 181, 0, 0, 0, 0, - 0, 160, 0, 0, 0, 133, 124, 0, 87, 202, - 204, 0, 206, 217, 205, 91, 113, 152, 218, 153, - 0, 148, 0, 0, 0, 139, 0, 151, 150, 166, - 167, 168, 169, 170, 171, 172, 143, 142, 145, 144, - 146, 147, 0, 65, 64, 0, 17, 0, 97, 110, - 109, 105, 0, 41, 0, 44, 43, 0, 42, 47, - 40, 50, 33, 0, 34, 27, 239, 0, 0, 164, - 0, 0, 0, 158, 0, 0, 0, 182, 0, 0, - 233, 225, 231, 229, 232, 227, 0, 0, 0, 216, - 210, 214, 0, 81, 0, 149, 0, 0, 0, 140, - 183, 0, 20, 32, 0, 0, 48, 0, 39, 38, - 58, 174, 0, 162, 0, 161, 0, 165, 217, 0, - 228, 230, 226, 0, 203, 218, 0, 184, 0, 0, - 156, 154, 22, 0, 0, 49, 175, 159, 163, 207, - 222, 234, 0, 93, 157, 155, 45, 46, 0, 0, - 0, 0, 90, 0, 235, 223, 215, 92, 185, 0, - 224 + 0, 62, 21, 0, 19, 68, 0, 100, 99, 98, + 74, 0, 0, 115, 0, 0, 0, 37, 0, 0, + 60, 0, 0, 171, 0, 184, 186, 0, 174, 175, + 176, 177, 178, 179, 0, 0, 0, 0, 0, 158, + 0, 0, 0, 131, 122, 0, 87, 200, 202, 0, + 204, 215, 203, 91, 111, 150, 216, 151, 0, 146, + 0, 0, 0, 137, 0, 149, 148, 164, 165, 166, + 167, 168, 169, 170, 141, 140, 143, 142, 144, 145, + 0, 65, 64, 0, 17, 0, 97, 108, 106, 0, + 41, 0, 44, 43, 0, 42, 47, 40, 50, 33, + 0, 34, 27, 237, 0, 0, 162, 0, 0, 0, + 156, 0, 0, 0, 180, 0, 0, 231, 223, 229, + 227, 230, 225, 0, 0, 0, 214, 208, 212, 0, + 81, 0, 147, 0, 0, 0, 138, 181, 0, 20, + 32, 0, 0, 48, 0, 39, 38, 58, 172, 0, + 160, 0, 159, 0, 163, 215, 0, 226, 228, 224, + 0, 201, 216, 0, 182, 0, 0, 154, 152, 22, + 0, 0, 49, 173, 157, 161, 205, 220, 232, 0, + 93, 155, 153, 45, 46, 0, 0, 0, 0, 90, + 0, 233, 221, 213, 92, 183, 0, 222 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -324, -324, -324, 400, -324, 436, -324, 145, -324, -324, - -324, -324, -324, 144, -324, -324, 422, -324, 136, -324, - -324, -324, 417, -324, -324, -324, 356, -324, -324, 241, - -162, 42, 407, -13, 452, -324, -324, 53, 313, -324, - -324, -324, -125, -324, -324, 173, -324, 261, -324, -324, - 61, -189, -324, -236, 299, -94, -70, -324, -324, -324, - -324, -324, -324, 316, -324, -324, -324, -324, -324, -324, - -324, -324, 70, -65, -119, -324, -324, -34, -324, -324, - -324, -323, 107, -324, -324, -324, 0, -324, 111, 366, - -324, -324, -324, -324, -324, 94 + -331, -331, -331, 418, -331, 455, -331, 159, -331, -331, + -331, -331, -331, 157, -331, -331, 437, -331, 151, -331, + -331, -331, 430, -331, -331, -331, 360, -331, -331, 254, + -149, 52, 421, -13, 456, -331, -331, 267, 303, -331, + -331, -331, -123, -331, -331, 126, -331, 253, -331, -331, + -43, -185, -331, -235, 291, -94, -64, -331, -331, -331, + -331, -331, -331, 314, -331, -331, -331, -331, -331, -331, + -331, -331, 72, -62, -118, -331, -331, -35, -331, -331, + -331, -330, 107, -331, -331, -331, 0, -331, 111, 359, + -331, -331, -331, -331, -331, 89 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 14, 15, 16, 17, 56, 234, 235, 18, 117, - 19, 20, 75, 178, 21, 22, 71, 248, 249, 331, - 378, 23, 83, 24, 25, 26, 125, 27, 156, 157, + -1, 14, 15, 16, 17, 56, 233, 234, 18, 117, + 19, 20, 75, 177, 21, 22, 71, 246, 247, 328, + 375, 23, 83, 24, 25, 26, 125, 27, 156, 157, 28, 29, 91, 30, 61, 62, 94, 31, 80, 135, - 199, 200, 122, 363, 422, 65, 163, 164, 240, 43, + 198, 199, 122, 360, 419, 65, 163, 164, 239, 43, 99, 136, 107, 108, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 190, 146, 147, 148, 149, 266, 150, + 143, 144, 145, 189, 146, 147, 148, 149, 264, 150, 151, 152, 153, 154, 110, 111, 112, 113, 114, 115, - 278, 279, 280, 281, 282, 44, 283, 359, 360, 361, - 207, 284, 356, 425, 54, 181 + 276, 277, 278, 279, 280, 44, 281, 356, 357, 358, + 206, 282, 353, 422, 54, 180 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -957,144 +955,142 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 51, 165, 34, 109, 179, 274, 421, 9, 78, 202, - 45, 77, 257, 202, 121, 33, 79, 174, 337, 214, - 349, 292, 58, 203, 428, 58, 203, 177, 101, 102, - 77, 232, 238, 37, 394, 189, 184, 9, 185, 73, - 197, 76, 205, 182, 228, 205, 229, 48, 85, 46, - 293, 33, 32, 59, 350, 50, 59, 203, 239, 351, - 193, 38, 195, 167, 170, 352, 353, 338, 35, 418, - 411, 119, 120, 203, 285, 276, 205, 47, 406, 371, - 354, 49, 269, 159, 160, 355, 63, 60, 334, 175, - 60, 36, 205, 214, 267, 126, 101, 102, 77, 231, - 168, 270, 39, 90, 40, 368, 90, 245, 271, 287, - 169, 289, 183, 13, 92, 348, 203, 92, 419, 103, - 229, 196, 193, 201, 358, 41, 55, 52, 204, 126, - 101, 102, 77, 127, 128, 205, 313, 347, 290, 42, - 291, 66, 201, 165, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 258, - 104, 105, 255, 126, 101, 102, 77, 127, 128, 277, - 129, 133, 68, 259, 295, 344, 345, 399, 97, 260, - 261, 262, 263, 264, 265, 67, 106, 103, 376, 109, - 214, 53, 296, 69, 188, 312, 98, 126, 101, 102, - 77, 127, 128, 179, 129, 130, 377, 413, 319, 320, - 321, 9, 225, 226, 227, 228, 70, 229, 341, 131, - 188, 103, 365, 236, 203, 203, 342, 241, 104, 105, - 386, 126, 101, 102, 77, 191, 128, 203, 129, 130, - 77, 132, 133, 205, 205, 270, 382, 383, 384, 134, - 109, 335, 343, 131, 106, 103, 205, 252, 203, 346, - 253, 385, 104, 105, 162, 203, 74, 79, 407, 166, - 128, 316, 129, 130, 317, 132, 133, 205, 81, 332, - 86, 367, 333, 134, 205, 82, 87, 131, 106, 103, - 380, 89, 408, 172, 397, 381, 104, 105, 201, 401, - 402, 93, 201, 172, 208, 415, 129, 192, 201, 132, - 133, 426, 95, 100, 253, 116, 121, 134, 118, 123, - 155, 131, 106, 103, 124, 424, 158, 427, 349, 161, - 104, 105, 1, 63, 209, 171, 172, 173, 101, 180, - 2, 192, 186, 132, 133, 187, 194, 3, 201, 198, - 230, 134, 4, 398, 233, 131, 106, 242, 237, 246, - 5, 6, 350, 243, 104, 105, 244, 351, 247, 250, - 7, 8, 251, 352, 353, 254, 9, 132, 133, 210, - 9, 10, 272, 288, 275, 134, 209, 294, 354, 315, - 106, 322, -234, 355, 336, 339, 292, 340, 362, 357, - 211, 203, 366, 369, 229, 374, 370, 11, 212, 213, - 349, 375, 389, 390, 387, 214, 215, 388, 391, 392, - 209, 393, 12, 395, 396, 216, 217, 218, 219, 220, - 400, 210, 221, 222, 403, 223, 224, 225, 226, 227, - 228, 404, 229, 412, 350, 364, 414, 405, 416, 351, - 417, 423, 273, 88, 57, 352, 353, 185, 209, 430, - 72, 213, 372, -208, 84, 210, 373, 214, 215, 379, - 354, 96, 314, 209, -234, 355, 176, 216, 217, 218, - 219, 220, 13, 64, 221, 222, 273, 223, 224, 225, - 226, 227, 228, 429, 229, 213, 410, 256, 318, 409, - 286, 214, 215, -235, 206, 268, 420, 0, 0, 0, - 0, 216, 217, 218, 219, 220, 0, 0, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 0, 229, 0, - 0, 0, 0, 213, 0, 0, 0, 0, 0, 214, - -235, 0, 0, 0, 0, -209, 0, 0, 213, -235, - -235, -235, 219, 220, 214, 0, 221, 222, 0, 223, - 224, 225, 226, 227, 228, 0, 229, -235, -235, 0, - 0, -235, -235, 0, 223, 224, 225, 226, 227, 228, - 323, 229, 0, 0, 0, 0, 324, 0, 0, 0, - 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 326, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 330 + 51, 165, 34, 167, 169, 178, 109, 78, 272, 201, + 45, 33, 9, 121, 1, 242, 173, 334, 202, 201, + 418, 255, 2, 425, 391, 79, 58, 176, 202, 3, + 237, 37, 290, 231, 4, 188, 46, 204, 32, 73, + 196, 76, 5, 6, 97, 48, 58, 204, 85, 101, + 102, 77, 7, 8, 213, 202, 238, 59, 9, 38, + 408, 291, 98, 10, 47, 50, 192, 293, 194, 335, + 274, 119, 120, 202, 204, 283, 33, 59, 368, 49, + 403, 228, 187, 159, 160, 294, 202, 63, 174, 11, + 213, 60, 204, 265, 126, 101, 102, 77, 230, 331, + 126, 101, 102, 77, 12, 204, 35, 365, 285, 243, + 287, 60, 182, 90, 9, 227, 90, 228, 13, 235, + 181, 195, 202, 240, 355, 202, 345, 192, 126, 101, + 102, 77, 127, 128, 203, 311, 36, 200, 127, 128, + 103, 204, 165, 288, 204, 289, 41, 317, 318, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 13, 275, 127, 128, 256, 129, + 133, 253, 257, 341, 342, 129, 9, 373, 396, 267, + 338, 104, 105, 339, 39, 250, 103, 202, 251, 213, + 109, 314, 103, 310, 315, 374, 168, 329, 268, 187, + 330, 178, 268, 129, 130, 269, 204, 106, 410, 340, + 130, 224, 225, 226, 227, 42, 228, 162, 131, 183, + 103, 184, 166, 40, 131, 52, 362, 104, 105, 126, + 101, 102, 77, 104, 105, 53, 202, 66, 130, 382, + 132, 133, 55, 379, 380, 381, 132, 133, 134, 332, + 68, 109, 131, 106, 134, 204, 69, 343, 74, 106, + 67, 104, 105, 126, 101, 102, 77, 127, 128, 126, + 101, 102, 77, 383, 132, 133, 70, 77, 344, 364, + 202, 202, 134, 200, 404, 377, 79, 106, 171, 405, + 378, 346, 398, 200, 86, 200, 81, 394, 82, 204, + 204, 190, 128, 399, 129, 87, 171, 89, 128, 258, + 259, 260, 261, 262, 263, 207, 412, 93, 95, 200, + 346, 103, 421, 423, 424, 347, 251, 100, 92, 116, + 348, 92, 121, 118, 123, 155, 349, 350, 129, 130, + 415, 124, 158, 161, 129, 208, 63, 170, 171, 172, + 395, 351, 101, 131, 347, 103, 352, 179, 185, 348, + 186, 103, 104, 105, 193, 349, 350, 197, 200, 229, + 232, 236, 245, 191, 241, 132, 133, 244, 249, 191, + 351, 248, 9, 134, -232, 352, 252, 131, 106, 416, + 209, 273, 270, 131, 286, 292, 104, 105, 313, 319, + 333, 336, 104, 105, 337, 290, 354, 359, 202, 132, + 133, 210, 363, 208, 228, 132, 133, 134, 346, 211, + 212, 371, 106, 134, 366, 367, 213, 214, 106, 372, + 386, 384, 387, 385, 388, 389, 215, 216, 217, 218, + 219, 390, 392, 220, 221, 397, 222, 223, 224, 225, + 226, 227, 347, 228, 393, -206, 208, 348, 209, 400, + 401, 409, 420, 349, 350, 402, 184, 411, 413, 414, + 427, 88, 361, 57, 369, 72, 370, 84, 351, 271, + 175, 376, -232, 352, 312, 96, 254, 64, 212, 316, + 208, 284, 426, 407, 213, 214, 406, 205, 417, 0, + 0, 209, 266, 0, 215, 216, 217, 218, 219, 0, + 0, 220, 221, 0, 222, 223, 224, 225, 226, 227, + 0, 228, 271, 0, 208, 0, 0, 0, 0, 0, + 0, 212, 0, 0, 0, -233, 0, 213, 214, 0, + 0, 0, 0, 0, 0, 0, 0, 215, 216, 217, + 218, 219, 0, -207, 220, 221, 0, 222, 223, 224, + 225, 226, 227, 0, 228, 212, 0, 320, 0, 0, + 0, 213, -233, 321, 0, 0, 0, 0, 0, 0, + 322, -233, -233, -233, 218, 219, 0, 0, 220, 221, + 0, 222, 223, 224, 225, 226, 227, 0, 228, 212, + 0, 0, 0, 0, 323, 213, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -233, -233, + 0, 324, -233, -233, 0, 222, 223, 224, 225, 226, + 227, 0, 228, 0, 0, 0, 325, 0, 0, 0, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 327 }; static const yytype_int16 yycheck[] = { - 13, 95, 2, 68, 123, 194, 44, 51, 42, 3, - 10, 6, 3, 3, 76, 3, 12, 85, 254, 128, - 26, 92, 9, 106, 3, 9, 106, 121, 4, 5, - 6, 156, 81, 73, 357, 129, 157, 51, 159, 39, - 134, 41, 125, 57, 153, 125, 155, 19, 48, 73, - 121, 3, 27, 40, 60, 13, 40, 106, 107, 65, - 130, 101, 132, 97, 98, 71, 72, 256, 3, 75, - 393, 71, 72, 106, 199, 158, 125, 101, 158, 315, - 86, 53, 83, 83, 84, 91, 70, 74, 250, 157, - 74, 3, 125, 128, 188, 3, 4, 5, 6, 161, - 95, 102, 85, 61, 85, 294, 64, 172, 109, 203, - 105, 205, 125, 157, 61, 277, 106, 64, 124, 95, - 155, 134, 192, 161, 118, 89, 103, 0, 118, 3, - 4, 5, 6, 41, 42, 125, 230, 156, 208, 117, - 210, 3, 161, 237, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 150, - 136, 137, 158, 3, 4, 5, 6, 41, 42, 157, - 78, 150, 157, 186, 95, 269, 270, 366, 48, 130, - 131, 132, 133, 134, 135, 159, 162, 95, 95, 254, - 128, 160, 113, 85, 102, 229, 66, 3, 4, 5, - 6, 41, 42, 322, 78, 113, 113, 396, 242, 243, - 244, 51, 150, 151, 152, 153, 120, 155, 99, 127, - 102, 95, 292, 162, 106, 106, 83, 166, 136, 137, - 99, 3, 4, 5, 6, 41, 42, 106, 78, 113, - 6, 149, 150, 125, 125, 102, 340, 341, 342, 157, - 315, 251, 109, 127, 162, 95, 125, 158, 106, 272, - 161, 109, 136, 137, 91, 106, 108, 12, 109, 96, - 42, 158, 78, 113, 161, 149, 150, 125, 115, 158, - 158, 294, 161, 157, 125, 120, 158, 127, 162, 95, - 158, 88, 386, 161, 364, 158, 136, 137, 161, 158, - 158, 105, 161, 161, 17, 158, 78, 113, 161, 149, - 150, 158, 119, 3, 161, 4, 76, 157, 113, 84, - 3, 127, 162, 95, 157, 419, 41, 421, 26, 157, - 136, 137, 7, 70, 47, 158, 161, 41, 4, 3, - 15, 113, 157, 149, 150, 157, 155, 22, 161, 85, - 138, 157, 27, 366, 3, 127, 162, 48, 161, 116, - 35, 36, 60, 48, 136, 137, 48, 65, 3, 118, - 45, 46, 89, 71, 72, 157, 51, 149, 150, 92, - 51, 56, 157, 3, 158, 157, 47, 157, 86, 157, - 162, 84, 90, 91, 3, 158, 92, 85, 63, 161, - 113, 106, 157, 95, 155, 157, 156, 82, 121, 122, - 26, 157, 90, 71, 158, 128, 129, 158, 71, 71, - 47, 90, 97, 3, 119, 138, 139, 140, 141, 142, - 158, 92, 145, 146, 6, 148, 149, 150, 151, 152, - 153, 6, 155, 157, 60, 106, 158, 95, 158, 65, - 158, 157, 113, 53, 18, 71, 72, 159, 47, 158, - 38, 122, 317, 161, 47, 92, 322, 128, 129, 333, - 86, 64, 231, 47, 90, 91, 120, 138, 139, 140, - 141, 142, 157, 31, 145, 146, 113, 148, 149, 150, - 151, 152, 153, 423, 155, 122, 389, 184, 237, 388, - 201, 128, 129, 92, 138, 189, 412, -1, -1, -1, - -1, 138, 139, 140, 141, 142, -1, -1, 145, 146, - -1, 148, 149, 150, 151, 152, 153, -1, 155, -1, - -1, -1, -1, 122, -1, -1, -1, -1, -1, 128, - 129, -1, -1, -1, -1, 161, -1, -1, 122, 138, - 139, 140, 141, 142, 128, -1, 145, 146, -1, 148, - 149, 150, 151, 152, 153, -1, 155, 141, 142, -1, + 13, 95, 2, 97, 98, 123, 68, 42, 193, 3, + 10, 3, 51, 76, 7, 48, 85, 252, 106, 3, + 44, 3, 15, 3, 354, 12, 9, 121, 106, 22, + 81, 73, 92, 156, 27, 129, 73, 125, 27, 39, + 134, 41, 35, 36, 48, 19, 9, 125, 48, 4, + 5, 6, 45, 46, 128, 106, 107, 40, 51, 101, + 390, 121, 66, 56, 101, 13, 130, 95, 132, 254, + 158, 71, 72, 106, 125, 198, 3, 40, 313, 53, + 158, 155, 102, 83, 84, 113, 106, 70, 157, 82, + 128, 74, 125, 187, 3, 4, 5, 6, 161, 248, + 3, 4, 5, 6, 97, 125, 3, 292, 202, 171, + 204, 74, 125, 61, 51, 153, 64, 155, 157, 162, + 57, 134, 106, 166, 118, 106, 275, 191, 3, 4, + 5, 6, 41, 42, 118, 229, 3, 161, 41, 42, + 95, 125, 236, 207, 125, 209, 89, 241, 242, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 157, 157, 41, 42, 150, 78, + 150, 158, 185, 267, 268, 78, 51, 95, 363, 83, + 99, 136, 137, 83, 85, 158, 95, 106, 161, 128, + 252, 158, 95, 228, 161, 113, 105, 158, 102, 102, + 161, 319, 102, 78, 113, 109, 125, 162, 393, 109, + 113, 150, 151, 152, 153, 117, 155, 91, 127, 157, + 95, 159, 96, 85, 127, 0, 290, 136, 137, 3, + 4, 5, 6, 136, 137, 160, 106, 3, 113, 109, + 149, 150, 103, 337, 338, 339, 149, 150, 157, 249, + 157, 313, 127, 162, 157, 125, 85, 270, 108, 162, + 159, 136, 137, 3, 4, 5, 6, 41, 42, 3, + 4, 5, 6, 99, 149, 150, 120, 6, 156, 292, + 106, 106, 157, 161, 109, 158, 12, 162, 161, 383, + 158, 26, 158, 161, 158, 161, 115, 361, 120, 125, + 125, 41, 42, 158, 78, 158, 161, 88, 42, 130, + 131, 132, 133, 134, 135, 17, 158, 105, 119, 161, + 26, 95, 416, 158, 418, 60, 161, 3, 61, 4, + 65, 64, 76, 113, 84, 3, 71, 72, 78, 113, + 75, 157, 41, 157, 78, 47, 70, 158, 161, 41, + 363, 86, 4, 127, 60, 95, 91, 3, 157, 65, + 157, 95, 136, 137, 155, 71, 72, 85, 161, 138, + 3, 161, 3, 113, 48, 149, 150, 116, 89, 113, + 86, 118, 51, 157, 90, 91, 157, 127, 162, 124, + 92, 158, 157, 127, 3, 157, 136, 137, 157, 84, + 3, 158, 136, 137, 85, 92, 161, 63, 106, 149, + 150, 113, 157, 47, 155, 149, 150, 157, 26, 121, + 122, 157, 162, 157, 95, 156, 128, 129, 162, 157, + 90, 158, 71, 158, 71, 71, 138, 139, 140, 141, + 142, 90, 3, 145, 146, 158, 148, 149, 150, 151, + 152, 153, 60, 155, 119, 161, 47, 65, 92, 6, + 6, 157, 157, 71, 72, 95, 159, 158, 158, 158, + 158, 53, 106, 18, 315, 38, 319, 47, 86, 113, + 120, 330, 90, 91, 230, 64, 183, 31, 122, 236, + 47, 200, 420, 386, 128, 129, 385, 138, 409, -1, + -1, 92, 188, -1, 138, 139, 140, 141, 142, -1, -1, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 25, 155, -1, -1, -1, -1, 31, -1, -1, -1, - -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, - -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 111 + -1, 155, 113, -1, 47, -1, -1, -1, -1, -1, + -1, 122, -1, -1, -1, 92, -1, 128, 129, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, + 141, 142, -1, 161, 145, 146, -1, 148, 149, 150, + 151, 152, 153, -1, 155, 122, -1, 25, -1, -1, + -1, 128, 129, 31, -1, -1, -1, -1, -1, -1, + 38, 138, 139, 140, 141, 142, -1, -1, 145, 146, + -1, 148, 149, 150, 151, 152, 153, -1, 155, 122, + -1, -1, -1, -1, 62, 128, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 141, 142, + -1, 79, 145, 146, -1, 148, 149, 150, 151, 152, + 153, -1, 155, -1, -1, -1, 94, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1117,34 +1113,33 @@ static const yytype_uint16 yystos[] = 113, 127, 149, 150, 157, 202, 214, 217, 218, 219, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 232, 233, 234, 235, 236, 3, 191, 192, 41, 249, - 249, 157, 208, 209, 210, 218, 208, 240, 95, 105, - 240, 158, 161, 41, 85, 157, 189, 218, 176, 237, - 3, 258, 57, 196, 157, 159, 157, 157, 102, 218, - 226, 41, 113, 219, 155, 219, 196, 218, 85, 203, - 204, 161, 3, 106, 118, 125, 252, 253, 17, 47, - 92, 113, 121, 122, 128, 129, 138, 139, 140, 141, - 142, 145, 146, 148, 149, 150, 151, 152, 153, 155, - 138, 161, 205, 3, 169, 170, 213, 161, 81, 107, - 211, 213, 48, 48, 48, 236, 116, 3, 180, 181, - 118, 89, 158, 161, 157, 158, 201, 3, 150, 196, - 130, 131, 132, 133, 134, 135, 231, 218, 226, 83, - 102, 109, 157, 113, 214, 158, 158, 157, 243, 244, - 245, 246, 247, 249, 254, 205, 217, 218, 3, 218, - 219, 219, 92, 121, 157, 95, 113, 219, 219, 219, + 249, 157, 208, 209, 210, 218, 208, 218, 105, 218, + 158, 161, 41, 85, 157, 189, 218, 176, 237, 3, + 258, 57, 196, 157, 159, 157, 157, 102, 218, 226, + 41, 113, 219, 155, 219, 196, 218, 85, 203, 204, + 161, 3, 106, 118, 125, 252, 253, 17, 47, 92, + 113, 121, 122, 128, 129, 138, 139, 140, 141, 142, + 145, 146, 148, 149, 150, 151, 152, 153, 155, 138, + 161, 205, 3, 169, 170, 213, 161, 81, 107, 211, + 213, 48, 48, 236, 116, 3, 180, 181, 118, 89, + 158, 161, 157, 158, 201, 3, 150, 196, 130, 131, + 132, 133, 134, 135, 231, 218, 226, 83, 102, 109, + 157, 113, 214, 158, 158, 157, 243, 244, 245, 246, + 247, 249, 254, 205, 217, 218, 3, 218, 219, 219, + 92, 121, 157, 95, 113, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 240, 218, 192, 157, 158, 161, 210, 240, - 240, 240, 84, 25, 31, 38, 62, 79, 94, 98, - 111, 182, 158, 161, 193, 249, 3, 216, 214, 158, - 85, 99, 83, 109, 218, 218, 196, 156, 193, 26, - 60, 65, 71, 72, 86, 91, 255, 161, 118, 250, - 251, 252, 63, 206, 106, 219, 157, 196, 214, 95, - 156, 216, 170, 176, 157, 157, 95, 113, 183, 181, - 158, 158, 218, 218, 218, 109, 99, 158, 158, 90, - 71, 71, 71, 90, 244, 3, 119, 219, 196, 214, - 158, 158, 158, 6, 6, 95, 158, 109, 218, 251, - 245, 244, 157, 214, 158, 158, 158, 158, 75, 124, - 258, 44, 207, 157, 218, 256, 158, 218, 3, 235, - 158 + 240, 218, 192, 157, 158, 161, 210, 218, 218, 84, + 25, 31, 38, 62, 79, 94, 98, 111, 182, 158, + 161, 193, 249, 3, 216, 214, 158, 85, 99, 83, + 109, 218, 218, 196, 156, 193, 26, 60, 65, 71, + 72, 86, 91, 255, 161, 118, 250, 251, 252, 63, + 206, 106, 219, 157, 196, 214, 95, 156, 216, 170, + 176, 157, 157, 95, 113, 183, 181, 158, 158, 218, + 218, 218, 109, 99, 158, 158, 90, 71, 71, 71, + 90, 244, 3, 119, 219, 196, 214, 158, 158, 158, + 6, 6, 95, 158, 109, 218, 251, 245, 244, 157, + 214, 158, 158, 158, 158, 75, 124, 258, 44, 207, + 157, 218, 256, 158, 218, 3, 235, 158 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1161,19 +1156,19 @@ static const yytype_uint16 yyr1[] = 199, 200, 201, 201, 202, 203, 203, 204, 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 210, 211, 211, 211, 212, 212, 213, 213, 213, 213, 213, 213, - 213, 213, 214, 214, 215, 215, 216, 216, 217, 218, - 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 220, 220, 221, 221, 221, 221, - 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 223, 223, 224, 224, 224, 224, 225, 225, - 225, 225, 226, 226, 227, 227, 228, 228, 228, 228, - 228, 228, 228, 229, 229, 230, 231, 231, 231, 231, - 231, 231, 232, 233, 234, 235, 235, 235, 235, 236, - 236, 236, 236, 236, 237, 238, 238, 239, 239, 240, - 241, 242, 243, 243, 244, 244, 245, 245, 246, 246, - 247, 248, 249, 249, 250, 250, 251, 251, 252, 252, - 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 256, 257, 257, 258, 258 + 214, 214, 215, 215, 216, 216, 217, 218, 218, 218, + 218, 218, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 220, 220, 221, 221, 221, 221, 221, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 223, 223, 224, 224, 224, 224, 225, 225, 225, 225, + 226, 226, 227, 227, 228, 228, 228, 228, 228, 228, + 228, 229, 229, 230, 231, 231, 231, 231, 231, 231, + 232, 233, 234, 235, 235, 235, 235, 236, 236, 236, + 236, 236, 237, 238, 238, 239, 239, 240, 241, 242, + 243, 243, 244, 244, 245, 245, 246, 246, 247, 248, + 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, + 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 256, 257, 257, 258, 258 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1189,20 +1184,20 @@ static const yytype_uint8 yyr2[] = 3, 1, 1, 3, 5, 2, 1, 1, 1, 1, 0, 7, 1, 0, 1, 1, 0, 2, 2, 0, 4, 0, 2, 0, 3, 0, 1, 3, 2, 1, - 1, 0, 2, 0, 2, 4, 2, 2, 2, 4, - 4, 0, 1, 3, 1, 0, 1, 3, 2, 1, - 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 2, 2, 2, 3, - 4, 1, 3, 3, 3, 3, 3, 3, 3, 4, - 3, 3, 3, 3, 5, 6, 5, 6, 4, 6, - 3, 5, 4, 5, 4, 5, 3, 3, 3, 3, - 3, 3, 3, 3, 5, 6, 1, 1, 1, 1, - 1, 1, 4, 4, 5, 1, 3, 1, 3, 1, + 1, 0, 2, 0, 2, 2, 4, 2, 4, 0, + 1, 3, 1, 0, 1, 3, 2, 1, 1, 1, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 1, 2, 2, 2, 3, 4, 1, + 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, + 3, 3, 5, 6, 5, 6, 4, 6, 3, 5, + 4, 5, 4, 5, 3, 3, 3, 3, 3, 3, + 3, 3, 5, 6, 1, 1, 1, 1, 1, 1, + 4, 4, 5, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 4, 1, 3, - 2, 1, 1, 3, 1, 5, 1, 0, 2, 1, - 1, 0, 4, 6, 8, 1, 2, 1, 2, 1, - 2, 1, 1, 1, 0, 1, 1, 0, 1, 3 + 1, 3, 1, 1, 1, 4, 1, 3, 2, 1, + 1, 3, 1, 5, 1, 0, 2, 1, 1, 0, + 4, 6, 8, 1, 2, 1, 2, 1, 2, 1, + 1, 1, 0, 1, 1, 0, 1, 3 }; @@ -1407,7 +1402,7 @@ do { \ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, hsql::SQLParserResult* result, yyscan_t scanner) { - unsigned long yylno = yyrline[yyrule]; + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", @@ -1633,7 +1628,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, case N: \ yyformat = S; \ break - default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); @@ -1700,31 +1694,31 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 3: /* IDENTIFIER */ -#line 143 "bison_parser.y" /* yacc.c:1258 */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1706 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1700 "bison_parser.cpp" /* yacc.c:1257 */ break; case 4: /* STRING */ -#line 143 "bison_parser.y" /* yacc.c:1258 */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1712 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1706 "bison_parser.cpp" /* yacc.c:1257 */ break; case 5: /* FLOATVAL */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1718 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1712 "bison_parser.cpp" /* yacc.c:1257 */ break; case 6: /* INTVAL */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1724 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1718 "bison_parser.cpp" /* yacc.c:1257 */ break; case 165: /* statement_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).stmt_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).stmt_vec))) { @@ -1733,23 +1727,23 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).stmt_vec)); } -#line 1737 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1731 "bison_parser.cpp" /* yacc.c:1257 */ break; case 166: /* statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).statement)); } -#line 1743 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1737 "bison_parser.cpp" /* yacc.c:1257 */ break; case 167: /* preparable_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).statement)); } -#line 1749 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1743 "bison_parser.cpp" /* yacc.c:1257 */ break; case 168: /* opt_hints */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -1758,11 +1752,11 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1762 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1756 "bison_parser.cpp" /* yacc.c:1257 */ break; case 169: /* hint_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -1771,71 +1765,71 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1775 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1769 "bison_parser.cpp" /* yacc.c:1257 */ break; case 170: /* hint */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 1781 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1775 "bison_parser.cpp" /* yacc.c:1257 */ break; case 171: /* prepare_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).prep_stmt)); } -#line 1787 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1781 "bison_parser.cpp" /* yacc.c:1257 */ break; case 172: /* prepare_target_query */ -#line 143 "bison_parser.y" /* yacc.c:1258 */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1793 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1787 "bison_parser.cpp" /* yacc.c:1257 */ break; case 173: /* execute_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).exec_stmt)); } -#line 1799 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1793 "bison_parser.cpp" /* yacc.c:1257 */ break; case 174: /* import_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).import_stmt)); } -#line 1805 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1799 "bison_parser.cpp" /* yacc.c:1257 */ break; case 175: /* import_file_type */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1811 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1805 "bison_parser.cpp" /* yacc.c:1257 */ break; case 176: /* file_path */ -#line 143 "bison_parser.y" /* yacc.c:1258 */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1817 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1811 "bison_parser.cpp" /* yacc.c:1257 */ break; case 177: /* show_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).show_stmt)); } -#line 1823 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1817 "bison_parser.cpp" /* yacc.c:1257 */ break; case 178: /* create_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).create_stmt)); } -#line 1829 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1823 "bison_parser.cpp" /* yacc.c:1257 */ break; case 179: /* opt_not_exists */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1835 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1829 "bison_parser.cpp" /* yacc.c:1257 */ break; case 180: /* column_def_commalist */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).column_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).column_vec))) { @@ -1844,59 +1838,59 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).column_vec)); } -#line 1848 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1842 "bison_parser.cpp" /* yacc.c:1257 */ break; case 181: /* column_def */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).column_t)); } -#line 1854 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1848 "bison_parser.cpp" /* yacc.c:1257 */ break; case 182: /* column_type */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1860 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1854 "bison_parser.cpp" /* yacc.c:1257 */ break; case 183: /* opt_column_nullable */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1866 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1860 "bison_parser.cpp" /* yacc.c:1257 */ break; case 184: /* drop_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).drop_stmt)); } -#line 1872 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1866 "bison_parser.cpp" /* yacc.c:1257 */ break; case 185: /* opt_exists */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1878 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1872 "bison_parser.cpp" /* yacc.c:1257 */ break; case 186: /* delete_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).delete_stmt)); } -#line 1884 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1878 "bison_parser.cpp" /* yacc.c:1257 */ break; case 187: /* truncate_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).delete_stmt)); } -#line 1890 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1884 "bison_parser.cpp" /* yacc.c:1257 */ break; case 188: /* insert_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).insert_stmt)); } -#line 1896 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1890 "bison_parser.cpp" /* yacc.c:1257 */ break; case 189: /* opt_column_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).str_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).str_vec))) { @@ -1905,17 +1899,17 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).str_vec)); } -#line 1909 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1903 "bison_parser.cpp" /* yacc.c:1257 */ break; case 190: /* update_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).update_stmt)); } -#line 1915 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1909 "bison_parser.cpp" /* yacc.c:1257 */ break; case 191: /* update_clause_commalist */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).update_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).update_vec))) { @@ -1924,53 +1918,53 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).update_vec)); } -#line 1928 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1922 "bison_parser.cpp" /* yacc.c:1257 */ break; case 192: /* update_clause */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).update_t)); } -#line 1934 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1928 "bison_parser.cpp" /* yacc.c:1257 */ break; case 193: /* select_statement */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1940 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1934 "bison_parser.cpp" /* yacc.c:1257 */ break; case 194: /* select_with_paren */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1946 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1940 "bison_parser.cpp" /* yacc.c:1257 */ break; case 195: /* select_paren_or_clause */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1952 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1946 "bison_parser.cpp" /* yacc.c:1257 */ break; case 196: /* select_no_paren */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1958 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1952 "bison_parser.cpp" /* yacc.c:1257 */ break; case 200: /* select_clause */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } -#line 1964 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1958 "bison_parser.cpp" /* yacc.c:1257 */ break; case 201: /* opt_distinct */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1970 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1964 "bison_parser.cpp" /* yacc.c:1257 */ break; case 202: /* select_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -1979,41 +1973,41 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1983 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1977 "bison_parser.cpp" /* yacc.c:1257 */ break; case 203: /* opt_from_clause */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 1989 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1983 "bison_parser.cpp" /* yacc.c:1257 */ break; case 204: /* from_clause */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 1995 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1989 "bison_parser.cpp" /* yacc.c:1257 */ break; case 205: /* opt_where */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2001 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1995 "bison_parser.cpp" /* yacc.c:1257 */ break; case 206: /* opt_group */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).group_t)); } -#line 2007 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2001 "bison_parser.cpp" /* yacc.c:1257 */ break; case 207: /* opt_having */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2013 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2007 "bison_parser.cpp" /* yacc.c:1257 */ break; case 208: /* opt_order */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).order_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).order_vec))) { @@ -2022,11 +2016,11 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).order_vec)); } -#line 2026 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2020 "bison_parser.cpp" /* yacc.c:1257 */ break; case 209: /* order_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).order_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).order_vec))) { @@ -2035,35 +2029,35 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).order_vec)); } -#line 2039 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2033 "bison_parser.cpp" /* yacc.c:1257 */ break; case 210: /* order_desc */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).order)); } -#line 2045 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2039 "bison_parser.cpp" /* yacc.c:1257 */ break; case 211: /* opt_order_type */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 2051 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2045 "bison_parser.cpp" /* yacc.c:1257 */ break; case 212: /* opt_top */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).limit)); } -#line 2057 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2051 "bison_parser.cpp" /* yacc.c:1257 */ break; case 213: /* opt_limit */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).limit)); } -#line 2063 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2057 "bison_parser.cpp" /* yacc.c:1257 */ break; case 214: /* expr_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2072,11 +2066,11 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 2076 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2070 "bison_parser.cpp" /* yacc.c:1257 */ break; case 215: /* opt_literal_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2085,11 +2079,11 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 2089 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2083 "bison_parser.cpp" /* yacc.c:1257 */ break; case 216: /* literal_list */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { @@ -2098,185 +2092,185 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 2102 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2096 "bison_parser.cpp" /* yacc.c:1257 */ break; case 217: /* expr_alias */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2108 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2102 "bison_parser.cpp" /* yacc.c:1257 */ break; case 218: /* expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2114 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2108 "bison_parser.cpp" /* yacc.c:1257 */ break; case 219: /* operand */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2120 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2114 "bison_parser.cpp" /* yacc.c:1257 */ break; case 220: /* scalar_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2126 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2120 "bison_parser.cpp" /* yacc.c:1257 */ break; case 221: /* unary_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2132 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2126 "bison_parser.cpp" /* yacc.c:1257 */ break; case 222: /* binary_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2138 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2132 "bison_parser.cpp" /* yacc.c:1257 */ break; case 223: /* logic_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2144 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2138 "bison_parser.cpp" /* yacc.c:1257 */ break; case 224: /* in_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2150 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2144 "bison_parser.cpp" /* yacc.c:1257 */ break; case 225: /* case_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2156 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2150 "bison_parser.cpp" /* yacc.c:1257 */ break; case 226: /* case_list */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2162 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2156 "bison_parser.cpp" /* yacc.c:1257 */ break; case 227: /* exists_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2168 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2162 "bison_parser.cpp" /* yacc.c:1257 */ break; case 228: /* comp_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2174 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2168 "bison_parser.cpp" /* yacc.c:1257 */ break; case 229: /* function_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2180 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2174 "bison_parser.cpp" /* yacc.c:1257 */ break; case 230: /* extract_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2186 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2180 "bison_parser.cpp" /* yacc.c:1257 */ break; case 231: /* datetime_field */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 2192 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2186 "bison_parser.cpp" /* yacc.c:1257 */ break; case 232: /* array_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2198 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2192 "bison_parser.cpp" /* yacc.c:1257 */ break; case 233: /* array_index */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2204 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2198 "bison_parser.cpp" /* yacc.c:1257 */ break; case 234: /* between_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2210 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2204 "bison_parser.cpp" /* yacc.c:1257 */ break; case 235: /* column_name */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2216 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2210 "bison_parser.cpp" /* yacc.c:1257 */ break; case 236: /* literal */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2222 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2216 "bison_parser.cpp" /* yacc.c:1257 */ break; case 237: /* string_literal */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2228 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2222 "bison_parser.cpp" /* yacc.c:1257 */ break; case 238: /* bool_literal */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2234 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2228 "bison_parser.cpp" /* yacc.c:1257 */ break; case 239: /* num_literal */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2240 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2234 "bison_parser.cpp" /* yacc.c:1257 */ break; case 240: /* int_literal */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2246 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2240 "bison_parser.cpp" /* yacc.c:1257 */ break; case 241: /* null_literal */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2252 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2246 "bison_parser.cpp" /* yacc.c:1257 */ break; case 242: /* param_expr */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2258 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2252 "bison_parser.cpp" /* yacc.c:1257 */ break; case 243: /* table_ref */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 2264 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2258 "bison_parser.cpp" /* yacc.c:1257 */ break; case 244: /* table_ref_atomic */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 2270 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2264 "bison_parser.cpp" /* yacc.c:1257 */ break; case 245: /* nonjoin_table_ref_atomic */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 2276 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2270 "bison_parser.cpp" /* yacc.c:1257 */ break; case 246: /* table_ref_commalist */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).table_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).table_vec))) { @@ -2285,71 +2279,71 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).table_vec)); } -#line 2289 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2283 "bison_parser.cpp" /* yacc.c:1257 */ break; case 247: /* table_ref_name */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 2295 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2289 "bison_parser.cpp" /* yacc.c:1257 */ break; case 248: /* table_ref_name_no_alias */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 2301 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2295 "bison_parser.cpp" /* yacc.c:1257 */ break; case 249: /* table_name */ -#line 142 "bison_parser.y" /* yacc.c:1258 */ +#line 142 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).table_name).name) ); free( (((*yyvaluep).table_name).schema) ); } -#line 2307 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2301 "bison_parser.cpp" /* yacc.c:1257 */ break; case 250: /* table_alias */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).alias_t)); } -#line 2313 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2307 "bison_parser.cpp" /* yacc.c:1257 */ break; case 251: /* opt_table_alias */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).alias_t)); } -#line 2319 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2313 "bison_parser.cpp" /* yacc.c:1257 */ break; case 252: /* alias */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).alias_t)); } -#line 2325 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2319 "bison_parser.cpp" /* yacc.c:1257 */ break; case 253: /* opt_alias */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).alias_t)); } -#line 2331 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2325 "bison_parser.cpp" /* yacc.c:1257 */ break; case 254: /* join_clause */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } -#line 2337 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2331 "bison_parser.cpp" /* yacc.c:1257 */ break; case 255: /* opt_join_type */ -#line 141 "bison_parser.y" /* yacc.c:1258 */ +#line 141 "bison_parser.y" /* yacc.c:1257 */ { } -#line 2343 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2337 "bison_parser.cpp" /* yacc.c:1257 */ break; case 256: /* join_condition */ -#line 152 "bison_parser.y" /* yacc.c:1258 */ +#line 152 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } -#line 2349 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2343 "bison_parser.cpp" /* yacc.c:1257 */ break; case 258: /* ident_commalist */ -#line 144 "bison_parser.y" /* yacc.c:1258 */ +#line 144 "bison_parser.y" /* yacc.c:1257 */ { if ((((*yyvaluep).str_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).str_vec))) { @@ -2358,7 +2352,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).str_vec)); } -#line 2362 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2356 "bison_parser.cpp" /* yacc.c:1257 */ break; @@ -2466,7 +2460,7 @@ YYLTYPE yylloc = yyloc_default; yychar = YYEMPTY; /* Cause a token to be read. */ /* User initialization code. */ -#line 73 "bison_parser.y" /* yacc.c:1440 */ +#line 73 "bison_parser.y" /* yacc.c:1429 */ { // Initialize yylloc.first_column = 0; @@ -2477,7 +2471,7 @@ YYLTYPE yylloc = yyloc_default; yylloc.string_length = 0; } -#line 2481 "bison_parser.cpp" /* yacc.c:1440 */ +#line 2475 "bison_parser.cpp" /* yacc.c:1429 */ yylsp[0] = yylloc; goto yysetstate; @@ -2552,7 +2546,7 @@ YYLTYPE yylloc = yyloc_default; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; @@ -2658,14 +2652,13 @@ yyreduce: GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; - /* Default location. */ + /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); - yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: -#line 254 "bison_parser.y" /* yacc.c:1666 */ +#line 254 "bison_parser.y" /* yacc.c:1646 */ { for (SQLStatement* stmt : *(yyvsp[-1].stmt_vec)) { // Transfers ownership of the statement. @@ -2683,226 +2676,226 @@ yyreduce: } delete (yyvsp[-1].stmt_vec); } -#line 2687 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2680 "bison_parser.cpp" /* yacc.c:1646 */ break; case 3: -#line 275 "bison_parser.y" /* yacc.c:1666 */ +#line 275 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[0].statement)->stringLength = yylloc.string_length; yylloc.string_length = 0; (yyval.stmt_vec) = new std::vector(); (yyval.stmt_vec)->push_back((yyvsp[0].statement)); } -#line 2698 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2691 "bison_parser.cpp" /* yacc.c:1646 */ break; case 4: -#line 281 "bison_parser.y" /* yacc.c:1666 */ +#line 281 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[0].statement)->stringLength = yylloc.string_length; yylloc.string_length = 0; (yyvsp[-2].stmt_vec)->push_back((yyvsp[0].statement)); (yyval.stmt_vec) = (yyvsp[-2].stmt_vec); } -#line 2709 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2702 "bison_parser.cpp" /* yacc.c:1646 */ break; case 5: -#line 290 "bison_parser.y" /* yacc.c:1666 */ +#line 290 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[-1].prep_stmt); (yyval.statement)->hints = (yyvsp[0].expr_vec); } -#line 2718 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2711 "bison_parser.cpp" /* yacc.c:1646 */ break; case 6: -#line 294 "bison_parser.y" /* yacc.c:1666 */ +#line 294 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[-1].statement); (yyval.statement)->hints = (yyvsp[0].expr_vec); } -#line 2727 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2720 "bison_parser.cpp" /* yacc.c:1646 */ break; case 7: -#line 298 "bison_parser.y" /* yacc.c:1666 */ +#line 298 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].show_stmt); } -#line 2735 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2728 "bison_parser.cpp" /* yacc.c:1646 */ break; case 8: -#line 305 "bison_parser.y" /* yacc.c:1666 */ +#line 305 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].select_stmt); } -#line 2741 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2734 "bison_parser.cpp" /* yacc.c:1646 */ break; case 9: -#line 306 "bison_parser.y" /* yacc.c:1666 */ +#line 306 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].import_stmt); } -#line 2747 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2740 "bison_parser.cpp" /* yacc.c:1646 */ break; case 10: -#line 307 "bison_parser.y" /* yacc.c:1666 */ +#line 307 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].create_stmt); } -#line 2753 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2746 "bison_parser.cpp" /* yacc.c:1646 */ break; case 11: -#line 308 "bison_parser.y" /* yacc.c:1666 */ +#line 308 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].insert_stmt); } -#line 2759 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2752 "bison_parser.cpp" /* yacc.c:1646 */ break; case 12: -#line 309 "bison_parser.y" /* yacc.c:1666 */ +#line 309 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 2765 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2758 "bison_parser.cpp" /* yacc.c:1646 */ break; case 13: -#line 310 "bison_parser.y" /* yacc.c:1666 */ +#line 310 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 2771 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2764 "bison_parser.cpp" /* yacc.c:1646 */ break; case 14: -#line 311 "bison_parser.y" /* yacc.c:1666 */ +#line 311 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].update_stmt); } -#line 2777 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2770 "bison_parser.cpp" /* yacc.c:1646 */ break; case 15: -#line 312 "bison_parser.y" /* yacc.c:1666 */ +#line 312 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].drop_stmt); } -#line 2783 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2776 "bison_parser.cpp" /* yacc.c:1646 */ break; case 16: -#line 313 "bison_parser.y" /* yacc.c:1666 */ +#line 313 "bison_parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].exec_stmt); } -#line 2789 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2782 "bison_parser.cpp" /* yacc.c:1646 */ break; case 17: -#line 322 "bison_parser.y" /* yacc.c:1666 */ +#line 322 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr_vec) = (yyvsp[-1].expr_vec); } -#line 2795 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2788 "bison_parser.cpp" /* yacc.c:1646 */ break; case 18: -#line 323 "bison_parser.y" /* yacc.c:1666 */ +#line 323 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr_vec) = nullptr; } -#line 2801 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2794 "bison_parser.cpp" /* yacc.c:1646 */ break; case 19: -#line 328 "bison_parser.y" /* yacc.c:1666 */ +#line 328 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 2807 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2800 "bison_parser.cpp" /* yacc.c:1646 */ break; case 20: -#line 329 "bison_parser.y" /* yacc.c:1666 */ +#line 329 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 2813 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2806 "bison_parser.cpp" /* yacc.c:1646 */ break; case 21: -#line 333 "bison_parser.y" /* yacc.c:1666 */ +#line 333 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::make(kExprHint); (yyval.expr)->name = (yyvsp[0].sval); } -#line 2822 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2815 "bison_parser.cpp" /* yacc.c:1646 */ break; case 22: -#line 337 "bison_parser.y" /* yacc.c:1666 */ +#line 337 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::make(kExprHint); (yyval.expr)->name = (yyvsp[-3].sval); (yyval.expr)->exprList = (yyvsp[-1].expr_vec); } -#line 2832 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2825 "bison_parser.cpp" /* yacc.c:1646 */ break; case 23: -#line 349 "bison_parser.y" /* yacc.c:1666 */ +#line 349 "bison_parser.y" /* yacc.c:1646 */ { (yyval.prep_stmt) = new PrepareStatement(); (yyval.prep_stmt)->name = (yyvsp[-2].sval); (yyval.prep_stmt)->query = (yyvsp[0].sval); } -#line 2842 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2835 "bison_parser.cpp" /* yacc.c:1646 */ break; case 25: -#line 359 "bison_parser.y" /* yacc.c:1666 */ +#line 359 "bison_parser.y" /* yacc.c:1646 */ { (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[0].sval); } -#line 2851 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2844 "bison_parser.cpp" /* yacc.c:1646 */ break; case 26: -#line 363 "bison_parser.y" /* yacc.c:1666 */ +#line 363 "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 2861 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2854 "bison_parser.cpp" /* yacc.c:1646 */ break; case 27: -#line 375 "bison_parser.y" /* yacc.c:1666 */ +#line 375 "bison_parser.y" /* yacc.c:1646 */ { (yyval.import_stmt) = new ImportStatement((ImportType) (yyvsp[-4].uval)); (yyval.import_stmt)->filePath = (yyvsp[-2].sval); (yyval.import_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.import_stmt)->tableName = (yyvsp[0].table_name).name; } -#line 2872 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2865 "bison_parser.cpp" /* yacc.c:1646 */ break; case 28: -#line 384 "bison_parser.y" /* yacc.c:1666 */ +#line 384 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kImportCSV; } -#line 2878 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2871 "bison_parser.cpp" /* yacc.c:1646 */ break; case 29: -#line 388 "bison_parser.y" /* yacc.c:1666 */ +#line 388 "bison_parser.y" /* yacc.c:1646 */ { (yyval.sval) = strdup((yyvsp[0].expr)->name); delete (yyvsp[0].expr); } -#line 2884 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2877 "bison_parser.cpp" /* yacc.c:1646 */ break; case 30: -#line 398 "bison_parser.y" /* yacc.c:1666 */ +#line 398 "bison_parser.y" /* yacc.c:1646 */ { (yyval.show_stmt) = new ShowStatement(kShowTables); } -#line 2892 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2885 "bison_parser.cpp" /* yacc.c:1646 */ break; case 31: -#line 401 "bison_parser.y" /* yacc.c:1666 */ +#line 401 "bison_parser.y" /* yacc.c:1646 */ { (yyval.show_stmt) = new ShowStatement(kShowColumns); (yyval.show_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.show_stmt)->name = (yyvsp[0].table_name).name; } -#line 2902 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2895 "bison_parser.cpp" /* yacc.c:1646 */ break; case 32: -#line 415 "bison_parser.y" /* yacc.c:1666 */ +#line 415 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(kCreateTableFromTbl); (yyval.create_stmt)->ifNotExists = (yyvsp[-5].bval); @@ -2910,11 +2903,11 @@ yyreduce: (yyval.create_stmt)->tableName = (yyvsp[-4].table_name).name; (yyval.create_stmt)->filePath = (yyvsp[0].sval); } -#line 2914 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2907 "bison_parser.cpp" /* yacc.c:1646 */ break; case 33: -#line 422 "bison_parser.y" /* yacc.c:1666 */ +#line 422 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(kCreateTable); (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); @@ -2922,11 +2915,11 @@ yyreduce: (yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name; (yyval.create_stmt)->columns = (yyvsp[-1].column_vec); } -#line 2926 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2919 "bison_parser.cpp" /* yacc.c:1646 */ break; case 34: -#line 429 "bison_parser.y" /* yacc.c:1666 */ +#line 429 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(kCreateView); (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); @@ -2935,174 +2928,174 @@ yyreduce: (yyval.create_stmt)->viewColumns = (yyvsp[-2].str_vec); (yyval.create_stmt)->select = (yyvsp[0].select_stmt); } -#line 2939 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2932 "bison_parser.cpp" /* yacc.c:1646 */ break; case 35: -#line 440 "bison_parser.y" /* yacc.c:1666 */ +#line 440 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = true; } -#line 2945 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2938 "bison_parser.cpp" /* yacc.c:1646 */ break; case 36: -#line 441 "bison_parser.y" /* yacc.c:1666 */ +#line 441 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = false; } -#line 2951 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2944 "bison_parser.cpp" /* yacc.c:1646 */ break; case 37: -#line 445 "bison_parser.y" /* yacc.c:1666 */ +#line 445 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } -#line 2957 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2950 "bison_parser.cpp" /* yacc.c:1646 */ break; case 38: -#line 446 "bison_parser.y" /* yacc.c:1666 */ +#line 446 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } -#line 2963 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2956 "bison_parser.cpp" /* yacc.c:1646 */ break; case 39: -#line 450 "bison_parser.y" /* yacc.c:1666 */ +#line 450 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_t) = new ColumnDefinition((yyvsp[-2].sval), (yyvsp[-1].column_type_t), (yyvsp[0].bval)); } -#line 2971 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2964 "bison_parser.cpp" /* yacc.c:1646 */ break; case 40: -#line 456 "bison_parser.y" /* yacc.c:1666 */ +#line 456 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::INT}; } -#line 2977 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2970 "bison_parser.cpp" /* yacc.c:1646 */ break; case 41: -#line 457 "bison_parser.y" /* yacc.c:1666 */ +#line 457 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::INT}; } -#line 2983 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2976 "bison_parser.cpp" /* yacc.c:1646 */ break; case 42: -#line 458 "bison_parser.y" /* yacc.c:1666 */ +#line 458 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::LONG}; } -#line 2989 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2982 "bison_parser.cpp" /* yacc.c:1646 */ break; case 43: -#line 459 "bison_parser.y" /* yacc.c:1666 */ +#line 459 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::FLOAT}; } -#line 2995 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2988 "bison_parser.cpp" /* yacc.c:1646 */ break; case 44: -#line 460 "bison_parser.y" /* yacc.c:1666 */ +#line 460 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::DOUBLE}; } -#line 3001 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2994 "bison_parser.cpp" /* yacc.c:1646 */ break; case 45: -#line 461 "bison_parser.y" /* yacc.c:1666 */ +#line 461 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; } -#line 3007 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3000 "bison_parser.cpp" /* yacc.c:1646 */ break; case 46: -#line 462 "bison_parser.y" /* yacc.c:1666 */ +#line 462 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::CHAR, (yyvsp[-1].ival)}; } -#line 3013 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3006 "bison_parser.cpp" /* yacc.c:1646 */ break; case 47: -#line 463 "bison_parser.y" /* yacc.c:1666 */ +#line 463 "bison_parser.y" /* yacc.c:1646 */ { (yyval.column_type_t) = ColumnType{DataType::TEXT}; } -#line 3019 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3012 "bison_parser.cpp" /* yacc.c:1646 */ break; case 48: -#line 467 "bison_parser.y" /* yacc.c:1666 */ +#line 467 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = true; } -#line 3025 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3018 "bison_parser.cpp" /* yacc.c:1646 */ break; case 49: -#line 468 "bison_parser.y" /* yacc.c:1666 */ +#line 468 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = false; } -#line 3031 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3024 "bison_parser.cpp" /* yacc.c:1646 */ break; case 50: -#line 469 "bison_parser.y" /* yacc.c:1666 */ +#line 469 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = false; } -#line 3037 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3030 "bison_parser.cpp" /* yacc.c:1646 */ break; case 51: -#line 479 "bison_parser.y" /* yacc.c:1666 */ +#line 479 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(kDropTable); (yyval.drop_stmt)->ifExists = (yyvsp[-1].bval); (yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.drop_stmt)->name = (yyvsp[0].table_name).name; } -#line 3048 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3041 "bison_parser.cpp" /* yacc.c:1646 */ break; case 52: -#line 485 "bison_parser.y" /* yacc.c:1666 */ +#line 485 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(kDropView); (yyval.drop_stmt)->ifExists = (yyvsp[-1].bval); (yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.drop_stmt)->name = (yyvsp[0].table_name).name; } -#line 3059 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3052 "bison_parser.cpp" /* yacc.c:1646 */ break; case 53: -#line 491 "bison_parser.y" /* yacc.c:1666 */ +#line 491 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(kDropPreparedStatement); (yyval.drop_stmt)->ifExists = false; (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 3069 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3062 "bison_parser.cpp" /* yacc.c:1646 */ break; case 54: -#line 499 "bison_parser.y" /* yacc.c:1666 */ +#line 499 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = true; } -#line 3075 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3068 "bison_parser.cpp" /* yacc.c:1646 */ break; case 55: -#line 500 "bison_parser.y" /* yacc.c:1666 */ +#line 500 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = false; } -#line 3081 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3074 "bison_parser.cpp" /* yacc.c:1646 */ break; case 56: -#line 509 "bison_parser.y" /* yacc.c:1666 */ +#line 509 "bison_parser.y" /* yacc.c:1646 */ { (yyval.delete_stmt) = new DeleteStatement(); (yyval.delete_stmt)->schema = (yyvsp[-1].table_name).schema; (yyval.delete_stmt)->tableName = (yyvsp[-1].table_name).name; (yyval.delete_stmt)->expr = (yyvsp[0].expr); } -#line 3092 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3085 "bison_parser.cpp" /* yacc.c:1646 */ break; case 57: -#line 518 "bison_parser.y" /* yacc.c:1666 */ +#line 518 "bison_parser.y" /* yacc.c:1646 */ { (yyval.delete_stmt) = new DeleteStatement(); (yyval.delete_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.delete_stmt)->tableName = (yyvsp[0].table_name).name; } -#line 3102 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3095 "bison_parser.cpp" /* yacc.c:1646 */ break; case 58: -#line 531 "bison_parser.y" /* yacc.c:1666 */ +#line 531 "bison_parser.y" /* yacc.c:1646 */ { (yyval.insert_stmt) = new InsertStatement(kInsertValues); (yyval.insert_stmt)->schema = (yyvsp[-5].table_name).schema; @@ -3110,11 +3103,11 @@ yyreduce: (yyval.insert_stmt)->columns = (yyvsp[-4].str_vec); (yyval.insert_stmt)->values = (yyvsp[-1].expr_vec); } -#line 3114 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3107 "bison_parser.cpp" /* yacc.c:1646 */ break; case 59: -#line 538 "bison_parser.y" /* yacc.c:1666 */ +#line 538 "bison_parser.y" /* yacc.c:1646 */ { (yyval.insert_stmt) = new InsertStatement(kInsertSelect); (yyval.insert_stmt)->schema = (yyvsp[-2].table_name).schema; @@ -3122,56 +3115,56 @@ yyreduce: (yyval.insert_stmt)->columns = (yyvsp[-1].str_vec); (yyval.insert_stmt)->select = (yyvsp[0].select_stmt); } -#line 3126 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3119 "bison_parser.cpp" /* yacc.c:1646 */ break; case 60: -#line 549 "bison_parser.y" /* yacc.c:1666 */ +#line 549 "bison_parser.y" /* yacc.c:1646 */ { (yyval.str_vec) = (yyvsp[-1].str_vec); } -#line 3132 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3125 "bison_parser.cpp" /* yacc.c:1646 */ break; case 61: -#line 550 "bison_parser.y" /* yacc.c:1666 */ +#line 550 "bison_parser.y" /* yacc.c:1646 */ { (yyval.str_vec) = nullptr; } -#line 3138 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3131 "bison_parser.cpp" /* yacc.c:1646 */ break; case 62: -#line 560 "bison_parser.y" /* yacc.c:1666 */ +#line 560 "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 3149 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3142 "bison_parser.cpp" /* yacc.c:1646 */ break; case 63: -#line 569 "bison_parser.y" /* yacc.c:1666 */ +#line 569 "bison_parser.y" /* yacc.c:1646 */ { (yyval.update_vec) = new std::vector(); (yyval.update_vec)->push_back((yyvsp[0].update_t)); } -#line 3155 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3148 "bison_parser.cpp" /* yacc.c:1646 */ break; case 64: -#line 570 "bison_parser.y" /* yacc.c:1666 */ +#line 570 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); (yyval.update_vec) = (yyvsp[-2].update_vec); } -#line 3161 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3154 "bison_parser.cpp" /* yacc.c:1646 */ break; case 65: -#line 574 "bison_parser.y" /* yacc.c:1666 */ +#line 574 "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 3171 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3164 "bison_parser.cpp" /* yacc.c:1646 */ break; case 68: -#line 588 "bison_parser.y" /* yacc.c:1666 */ +#line 588 "bison_parser.y" /* yacc.c:1646 */ { // TODO: allow multiple unions (through linked list) // TODO: capture type of set_operator @@ -3186,23 +3179,23 @@ yyreduce: (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 3190 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3183 "bison_parser.cpp" /* yacc.c:1646 */ break; case 69: -#line 605 "bison_parser.y" /* yacc.c:1666 */ +#line 605 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 3196 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3189 "bison_parser.cpp" /* yacc.c:1646 */ break; case 70: -#line 606 "bison_parser.y" /* yacc.c:1666 */ +#line 606 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 3202 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3195 "bison_parser.cpp" /* yacc.c:1646 */ break; case 73: -#line 615 "bison_parser.y" /* yacc.c:1666 */ +#line 615 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-2].select_stmt); (yyval.select_stmt)->order = (yyvsp[-1].order_vec); @@ -3213,11 +3206,11 @@ yyreduce: (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 3217 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3210 "bison_parser.cpp" /* yacc.c:1646 */ break; case 74: -#line 625 "bison_parser.y" /* yacc.c:1666 */ +#line 625 "bison_parser.y" /* yacc.c:1646 */ { // TODO: allow multiple unions (through linked list) // TODO: capture type of set_operator @@ -3232,11 +3225,11 @@ yyreduce: (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 3236 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3229 "bison_parser.cpp" /* yacc.c:1646 */ break; case 81: -#line 657 "bison_parser.y" /* yacc.c:1666 */ +#line 657 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = new SelectStatement(); (yyval.select_stmt)->limit = (yyvsp[-5].limit); @@ -3246,225 +3239,213 @@ yyreduce: (yyval.select_stmt)->whereClause = (yyvsp[-1].expr); (yyval.select_stmt)->groupBy = (yyvsp[0].group_t); } -#line 3250 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3243 "bison_parser.cpp" /* yacc.c:1646 */ break; case 82: -#line 669 "bison_parser.y" /* yacc.c:1666 */ +#line 669 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = true; } -#line 3256 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3249 "bison_parser.cpp" /* yacc.c:1646 */ break; case 83: -#line 670 "bison_parser.y" /* yacc.c:1666 */ +#line 670 "bison_parser.y" /* yacc.c:1646 */ { (yyval.bval) = false; } -#line 3262 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3255 "bison_parser.cpp" /* yacc.c:1646 */ break; case 85: -#line 678 "bison_parser.y" /* yacc.c:1666 */ +#line 678 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = (yyvsp[0].table); } -#line 3268 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3261 "bison_parser.cpp" /* yacc.c:1646 */ break; case 86: -#line 679 "bison_parser.y" /* yacc.c:1666 */ +#line 679 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = nullptr; } -#line 3274 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3267 "bison_parser.cpp" /* yacc.c:1646 */ break; case 87: -#line 682 "bison_parser.y" /* yacc.c:1666 */ +#line 682 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = (yyvsp[0].table); } -#line 3280 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3273 "bison_parser.cpp" /* yacc.c:1646 */ break; case 88: -#line 687 "bison_parser.y" /* yacc.c:1666 */ +#line 687 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 3286 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3279 "bison_parser.cpp" /* yacc.c:1646 */ break; case 89: -#line 688 "bison_parser.y" /* yacc.c:1666 */ +#line 688 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = nullptr; } -#line 3292 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3285 "bison_parser.cpp" /* yacc.c:1646 */ break; case 90: -#line 692 "bison_parser.y" /* yacc.c:1666 */ +#line 692 "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 3302 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3295 "bison_parser.cpp" /* yacc.c:1646 */ break; case 91: -#line 697 "bison_parser.y" /* yacc.c:1666 */ +#line 697 "bison_parser.y" /* yacc.c:1646 */ { (yyval.group_t) = nullptr; } -#line 3308 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3301 "bison_parser.cpp" /* yacc.c:1646 */ break; case 92: -#line 701 "bison_parser.y" /* yacc.c:1666 */ +#line 701 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 3314 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3307 "bison_parser.cpp" /* yacc.c:1646 */ break; case 93: -#line 702 "bison_parser.y" /* yacc.c:1666 */ +#line 702 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = nullptr; } -#line 3320 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3313 "bison_parser.cpp" /* yacc.c:1646 */ break; case 94: -#line 705 "bison_parser.y" /* yacc.c:1666 */ +#line 705 "bison_parser.y" /* yacc.c:1646 */ { (yyval.order_vec) = (yyvsp[0].order_vec); } -#line 3326 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3319 "bison_parser.cpp" /* yacc.c:1646 */ break; case 95: -#line 706 "bison_parser.y" /* yacc.c:1666 */ +#line 706 "bison_parser.y" /* yacc.c:1646 */ { (yyval.order_vec) = nullptr; } -#line 3332 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3325 "bison_parser.cpp" /* yacc.c:1646 */ break; case 96: -#line 710 "bison_parser.y" /* yacc.c:1666 */ +#line 710 "bison_parser.y" /* yacc.c:1646 */ { (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); } -#line 3338 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3331 "bison_parser.cpp" /* yacc.c:1646 */ break; case 97: -#line 711 "bison_parser.y" /* yacc.c:1666 */ +#line 711 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); } -#line 3344 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3337 "bison_parser.cpp" /* yacc.c:1646 */ break; case 98: -#line 715 "bison_parser.y" /* yacc.c:1666 */ +#line 715 "bison_parser.y" /* yacc.c:1646 */ { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } -#line 3350 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3343 "bison_parser.cpp" /* yacc.c:1646 */ break; case 99: -#line 719 "bison_parser.y" /* yacc.c:1666 */ +#line 719 "bison_parser.y" /* yacc.c:1646 */ { (yyval.order_type) = kOrderAsc; } -#line 3356 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3349 "bison_parser.cpp" /* yacc.c:1646 */ break; case 100: -#line 720 "bison_parser.y" /* yacc.c:1666 */ +#line 720 "bison_parser.y" /* yacc.c:1646 */ { (yyval.order_type) = kOrderDesc; } -#line 3362 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3355 "bison_parser.cpp" /* yacc.c:1646 */ break; case 101: -#line 721 "bison_parser.y" /* yacc.c:1666 */ +#line 721 "bison_parser.y" /* yacc.c:1646 */ { (yyval.order_type) = kOrderAsc; } -#line 3368 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3361 "bison_parser.cpp" /* yacc.c:1646 */ break; case 102: -#line 727 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } -#line 3374 "bison_parser.cpp" /* yacc.c:1666 */ +#line 727 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } +#line 3367 "bison_parser.cpp" /* yacc.c:1646 */ break; case 103: -#line 728 "bison_parser.y" /* yacc.c:1666 */ +#line 728 "bison_parser.y" /* yacc.c:1646 */ { (yyval.limit) = nullptr; } -#line 3380 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3373 "bison_parser.cpp" /* yacc.c:1646 */ break; case 104: -#line 732 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } -#line 3386 "bison_parser.cpp" /* yacc.c:1666 */ +#line 732 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } +#line 3379 "bison_parser.cpp" /* yacc.c:1646 */ break; case 105: -#line 733 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = new LimitDescription((yyvsp[-2].expr)->ival, (yyvsp[0].expr)->ival); delete (yyvsp[-2].expr); delete (yyvsp[0].expr); } -#line 3392 "bison_parser.cpp" /* yacc.c:1666 */ +#line 733 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } +#line 3385 "bison_parser.cpp" /* yacc.c:1646 */ break; case 106: -#line 734 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = new LimitDescription(kNoLimit, (yyvsp[0].expr)->ival); delete (yyvsp[0].expr); } -#line 3398 "bison_parser.cpp" /* yacc.c:1666 */ +#line 734 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3391 "bison_parser.cpp" /* yacc.c:1646 */ break; case 107: -#line 735 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = nullptr; } -#line 3404 "bison_parser.cpp" /* yacc.c:1666 */ +#line 735 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription(nullptr, nullptr); } +#line 3397 "bison_parser.cpp" /* yacc.c:1646 */ break; case 108: -#line 736 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = nullptr; } -#line 3410 "bison_parser.cpp" /* yacc.c:1666 */ +#line 736 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } +#line 3403 "bison_parser.cpp" /* yacc.c:1646 */ break; case 109: -#line 737 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = new LimitDescription(kNoLimit, (yyvsp[0].expr)->ival); delete (yyvsp[0].expr); } -#line 3416 "bison_parser.cpp" /* yacc.c:1666 */ +#line 737 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = nullptr; } +#line 3409 "bison_parser.cpp" /* yacc.c:1646 */ break; case 110: -#line 738 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = new LimitDescription(kNoLimit, (yyvsp[0].expr)->ival); delete (yyvsp[0].expr); } -#line 3422 "bison_parser.cpp" /* yacc.c:1666 */ +#line 744 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 3415 "bison_parser.cpp" /* yacc.c:1646 */ break; case 111: -#line 739 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.limit) = nullptr; } -#line 3428 "bison_parser.cpp" /* yacc.c:1666 */ +#line 745 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 3421 "bison_parser.cpp" /* yacc.c:1646 */ break; case 112: -#line 746 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 3434 "bison_parser.cpp" /* yacc.c:1666 */ +#line 749 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = (yyvsp[0].expr_vec); } +#line 3427 "bison_parser.cpp" /* yacc.c:1646 */ break; case 113: -#line 747 "bison_parser.y" /* yacc.c:1666 */ - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 3440 "bison_parser.cpp" /* yacc.c:1666 */ +#line 750 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = nullptr; } +#line 3433 "bison_parser.cpp" /* yacc.c:1646 */ break; case 114: -#line 751 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr_vec) = (yyvsp[0].expr_vec); } -#line 3446 "bison_parser.cpp" /* yacc.c:1666 */ +#line 754 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 3439 "bison_parser.cpp" /* yacc.c:1646 */ break; case 115: -#line 752 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr_vec) = nullptr; } -#line 3452 "bison_parser.cpp" /* yacc.c:1666 */ +#line 755 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 3445 "bison_parser.cpp" /* yacc.c:1646 */ break; case 116: -#line 756 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 3458 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 117: -#line 757 "bison_parser.y" /* yacc.c:1666 */ - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 3464 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 118: -#line 761 "bison_parser.y" /* yacc.c:1666 */ +#line 759 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[-1].expr); if ((yyvsp[0].alias_t)) { @@ -3472,415 +3453,415 @@ yyreduce: delete (yyvsp[0].alias_t); } } -#line 3476 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3457 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 124: -#line 779 "bison_parser.y" /* yacc.c:1666 */ + case 122: +#line 777 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[-1].expr); } -#line 3482 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3463 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 133: -#line 788 "bison_parser.y" /* yacc.c:1666 */ + case 131: +#line 786 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); } -#line 3488 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3469 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 134: +#line 795 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); } +#line 3475 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 135: +#line 796 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } +#line 3481 "bison_parser.cpp" /* yacc.c:1646 */ break; case 136: -#line 797 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); } -#line 3494 "bison_parser.cpp" /* yacc.c:1666 */ +#line 797 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); } +#line 3487 "bison_parser.cpp" /* yacc.c:1646 */ break; case 137: -#line 798 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } -#line 3500 "bison_parser.cpp" /* yacc.c:1666 */ +#line 798 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); } +#line 3493 "bison_parser.cpp" /* yacc.c:1646 */ break; case 138: -#line 799 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); } -#line 3506 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 139: -#line 800 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); } -#line 3512 "bison_parser.cpp" /* yacc.c:1666 */ +#line 799 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); } +#line 3499 "bison_parser.cpp" /* yacc.c:1646 */ break; case 140: -#line 801 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); } -#line 3518 "bison_parser.cpp" /* yacc.c:1666 */ +#line 804 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); } +#line 3505 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 141: +#line 805 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); } +#line 3511 "bison_parser.cpp" /* yacc.c:1646 */ break; case 142: -#line 806 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); } -#line 3524 "bison_parser.cpp" /* yacc.c:1666 */ +#line 806 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); } +#line 3517 "bison_parser.cpp" /* yacc.c:1646 */ break; case 143: -#line 807 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); } -#line 3530 "bison_parser.cpp" /* yacc.c:1666 */ +#line 807 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); } +#line 3523 "bison_parser.cpp" /* yacc.c:1646 */ break; case 144: -#line 808 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); } -#line 3536 "bison_parser.cpp" /* yacc.c:1666 */ +#line 808 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); } +#line 3529 "bison_parser.cpp" /* yacc.c:1646 */ break; case 145: -#line 809 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); } -#line 3542 "bison_parser.cpp" /* yacc.c:1666 */ +#line 809 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); } +#line 3535 "bison_parser.cpp" /* yacc.c:1646 */ break; case 146: -#line 810 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); } -#line 3548 "bison_parser.cpp" /* yacc.c:1666 */ +#line 810 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } +#line 3541 "bison_parser.cpp" /* yacc.c:1646 */ break; case 147: -#line 811 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); } -#line 3554 "bison_parser.cpp" /* yacc.c:1666 */ +#line 811 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } +#line 3547 "bison_parser.cpp" /* yacc.c:1646 */ break; case 148: -#line 812 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } -#line 3560 "bison_parser.cpp" /* yacc.c:1666 */ +#line 812 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); } +#line 3553 "bison_parser.cpp" /* yacc.c:1646 */ break; case 149: -#line 813 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } -#line 3566 "bison_parser.cpp" /* yacc.c:1666 */ +#line 813 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); } +#line 3559 "bison_parser.cpp" /* yacc.c:1646 */ break; case 150: -#line 814 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); } -#line 3572 "bison_parser.cpp" /* yacc.c:1666 */ +#line 817 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } +#line 3565 "bison_parser.cpp" /* yacc.c:1646 */ break; case 151: -#line 815 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); } -#line 3578 "bison_parser.cpp" /* yacc.c:1666 */ +#line 818 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } +#line 3571 "bison_parser.cpp" /* yacc.c:1646 */ break; case 152: -#line 819 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } -#line 3584 "bison_parser.cpp" /* yacc.c:1666 */ +#line 822 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } +#line 3577 "bison_parser.cpp" /* yacc.c:1646 */ break; case 153: -#line 820 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } -#line 3590 "bison_parser.cpp" /* yacc.c:1666 */ +#line 823 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } +#line 3583 "bison_parser.cpp" /* yacc.c:1646 */ break; case 154: -#line 824 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } -#line 3596 "bison_parser.cpp" /* yacc.c:1666 */ +#line 824 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } +#line 3589 "bison_parser.cpp" /* yacc.c:1646 */ break; case 155: -#line 825 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } -#line 3602 "bison_parser.cpp" /* yacc.c:1666 */ +#line 825 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } +#line 3595 "bison_parser.cpp" /* yacc.c:1646 */ break; case 156: -#line 826 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } -#line 3608 "bison_parser.cpp" /* yacc.c:1666 */ +#line 831 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); } +#line 3601 "bison_parser.cpp" /* yacc.c:1646 */ break; case 157: -#line 827 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } -#line 3614 "bison_parser.cpp" /* yacc.c:1666 */ +#line 832 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 3607 "bison_parser.cpp" /* yacc.c:1646 */ break; case 158: -#line 833 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); } -#line 3620 "bison_parser.cpp" /* yacc.c:1666 */ +#line 833 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); } +#line 3613 "bison_parser.cpp" /* yacc.c:1646 */ break; case 159: -#line 834 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 3626 "bison_parser.cpp" /* yacc.c:1666 */ +#line 834 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 3619 "bison_parser.cpp" /* yacc.c:1646 */ break; case 160: -#line 835 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); } -#line 3632 "bison_parser.cpp" /* yacc.c:1666 */ +#line 838 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 3625 "bison_parser.cpp" /* yacc.c:1646 */ break; case 161: -#line 836 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 3638 "bison_parser.cpp" /* yacc.c:1666 */ +#line 839 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 3631 "bison_parser.cpp" /* yacc.c:1646 */ break; case 162: -#line 840 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } -#line 3644 "bison_parser.cpp" /* yacc.c:1666 */ +#line 843 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } +#line 3637 "bison_parser.cpp" /* yacc.c:1646 */ break; case 163: -#line 841 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } -#line 3650 "bison_parser.cpp" /* yacc.c:1666 */ +#line 844 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } +#line 3643 "bison_parser.cpp" /* yacc.c:1646 */ break; case 164: -#line 845 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } -#line 3656 "bison_parser.cpp" /* yacc.c:1666 */ +#line 848 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 3649 "bison_parser.cpp" /* yacc.c:1646 */ break; case 165: -#line 846 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } -#line 3662 "bison_parser.cpp" /* yacc.c:1666 */ +#line 849 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 3655 "bison_parser.cpp" /* yacc.c:1646 */ break; case 166: -#line 850 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } -#line 3668 "bison_parser.cpp" /* yacc.c:1666 */ +#line 850 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } +#line 3661 "bison_parser.cpp" /* yacc.c:1646 */ break; case 167: -#line 851 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } -#line 3674 "bison_parser.cpp" /* yacc.c:1666 */ +#line 851 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); } +#line 3667 "bison_parser.cpp" /* yacc.c:1646 */ break; case 168: -#line 852 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } -#line 3680 "bison_parser.cpp" /* yacc.c:1666 */ +#line 852 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); } +#line 3673 "bison_parser.cpp" /* yacc.c:1646 */ break; case 169: -#line 853 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); } -#line 3686 "bison_parser.cpp" /* yacc.c:1666 */ +#line 853 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } +#line 3679 "bison_parser.cpp" /* yacc.c:1646 */ break; case 170: -#line 854 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); } -#line 3692 "bison_parser.cpp" /* yacc.c:1666 */ +#line 854 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } +#line 3685 "bison_parser.cpp" /* yacc.c:1646 */ break; case 171: -#line 855 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } -#line 3698 "bison_parser.cpp" /* yacc.c:1666 */ +#line 858 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-2].sval), new std::vector(), false); } +#line 3691 "bison_parser.cpp" /* yacc.c:1646 */ break; case 172: -#line 856 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } -#line 3704 "bison_parser.cpp" /* yacc.c:1666 */ +#line 859 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } +#line 3697 "bison_parser.cpp" /* yacc.c:1646 */ break; case 173: -#line 860 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-2].sval), new std::vector(), false); } -#line 3710 "bison_parser.cpp" /* yacc.c:1666 */ +#line 863 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); } +#line 3703 "bison_parser.cpp" /* yacc.c:1646 */ break; case 174: -#line 861 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } -#line 3716 "bison_parser.cpp" /* yacc.c:1666 */ +#line 867 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.datetime_field) = kDatetimeSecond; } +#line 3709 "bison_parser.cpp" /* yacc.c:1646 */ break; case 175: -#line 865 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); } -#line 3722 "bison_parser.cpp" /* yacc.c:1666 */ +#line 868 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.datetime_field) = kDatetimeMinute; } +#line 3715 "bison_parser.cpp" /* yacc.c:1646 */ break; case 176: -#line 869 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeSecond; } -#line 3728 "bison_parser.cpp" /* yacc.c:1666 */ +#line 869 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.datetime_field) = kDatetimeHour; } +#line 3721 "bison_parser.cpp" /* yacc.c:1646 */ break; case 177: -#line 870 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeMinute; } -#line 3734 "bison_parser.cpp" /* yacc.c:1666 */ +#line 870 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.datetime_field) = kDatetimeDay; } +#line 3727 "bison_parser.cpp" /* yacc.c:1646 */ break; case 178: -#line 871 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeHour; } -#line 3740 "bison_parser.cpp" /* yacc.c:1666 */ +#line 871 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.datetime_field) = kDatetimeMonth; } +#line 3733 "bison_parser.cpp" /* yacc.c:1646 */ break; case 179: -#line 872 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeDay; } -#line 3746 "bison_parser.cpp" /* yacc.c:1666 */ +#line 872 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.datetime_field) = kDatetimeYear; } +#line 3739 "bison_parser.cpp" /* yacc.c:1646 */ break; case 180: -#line 873 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeMonth; } -#line 3752 "bison_parser.cpp" /* yacc.c:1666 */ +#line 875 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); } +#line 3745 "bison_parser.cpp" /* yacc.c:1646 */ break; case 181: -#line 874 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeYear; } -#line 3758 "bison_parser.cpp" /* yacc.c:1666 */ +#line 879 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); } +#line 3751 "bison_parser.cpp" /* yacc.c:1646 */ break; case 182: -#line 877 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); } -#line 3764 "bison_parser.cpp" /* yacc.c:1666 */ +#line 883 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3757 "bison_parser.cpp" /* yacc.c:1646 */ break; case 183: -#line 881 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); } -#line 3770 "bison_parser.cpp" /* yacc.c:1666 */ +#line 887 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } +#line 3763 "bison_parser.cpp" /* yacc.c:1646 */ break; case 184: -#line 885 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3776 "bison_parser.cpp" /* yacc.c:1666 */ +#line 888 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } +#line 3769 "bison_parser.cpp" /* yacc.c:1646 */ break; case 185: -#line 889 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } -#line 3782 "bison_parser.cpp" /* yacc.c:1666 */ +#line 889 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeStar(); } +#line 3775 "bison_parser.cpp" /* yacc.c:1646 */ break; case 186: -#line 890 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } -#line 3788 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 187: -#line 891 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeStar(); } -#line 3794 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 188: -#line 892 "bison_parser.y" /* yacc.c:1666 */ +#line 890 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makeStar((yyvsp[-2].sval)); } -#line 3800 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3781 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 192: +#line 902 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } +#line 3787 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 193: +#line 906 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral(true); } +#line 3793 "bison_parser.cpp" /* yacc.c:1646 */ break; case 194: -#line 904 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } -#line 3806 "bison_parser.cpp" /* yacc.c:1666 */ +#line 907 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral(false); } +#line 3799 "bison_parser.cpp" /* yacc.c:1646 */ break; case 195: -#line 908 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral(true); } -#line 3812 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 196: -#line 909 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral(false); } -#line 3818 "bison_parser.cpp" /* yacc.c:1666 */ +#line 911 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } +#line 3805 "bison_parser.cpp" /* yacc.c:1646 */ break; case 197: -#line 913 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } -#line 3824 "bison_parser.cpp" /* yacc.c:1666 */ +#line 916 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } +#line 3811 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 198: +#line 920 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeNullLiteral(); } +#line 3817 "bison_parser.cpp" /* yacc.c:1646 */ break; case 199: -#line 918 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } -#line 3830 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 200: -#line 922 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeNullLiteral(); } -#line 3836 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 201: -#line 926 "bison_parser.y" /* yacc.c:1666 */ +#line 924 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makeParameter(yylloc.total_column); (yyval.expr)->ival2 = yyloc.param_list.size(); yyloc.param_list.push_back((yyval.expr)); } -#line 3846 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3827 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 203: -#line 939 "bison_parser.y" /* yacc.c:1666 */ + case 201: +#line 937 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); auto tbl = new TableRef(kTableCrossProduct); tbl->list = (yyvsp[-2].table_vec); (yyval.table) = tbl; } -#line 3857 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3838 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 207: -#line 955 "bison_parser.y" /* yacc.c:1666 */ + case 205: +#line 953 "bison_parser.y" /* yacc.c:1646 */ { auto tbl = new TableRef(kTableSelect); tbl->select = (yyvsp[-2].select_stmt); tbl->alias = (yyvsp[0].alias_t); (yyval.table) = tbl; } -#line 3868 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3849 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 206: +#line 962 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); } +#line 3855 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 207: +#line 963 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); } +#line 3861 "bison_parser.cpp" /* yacc.c:1646 */ break; case 208: -#line 964 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); } -#line 3874 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 209: -#line 965 "bison_parser.y" /* yacc.c:1666 */ - { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); } -#line 3880 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 210: -#line 970 "bison_parser.y" /* yacc.c:1666 */ +#line 968 "bison_parser.y" /* yacc.c:1646 */ { auto tbl = new TableRef(kTableName); tbl->schema = (yyvsp[-1].table_name).schema; @@ -3888,63 +3869,63 @@ yyreduce: tbl->alias = (yyvsp[0].alias_t); (yyval.table) = tbl; } -#line 3892 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3873 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 211: -#line 981 "bison_parser.y" /* yacc.c:1666 */ + case 209: +#line 979 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableName); (yyval.table)->schema = (yyvsp[0].table_name).schema; (yyval.table)->name = (yyvsp[0].table_name).name; } -#line 3902 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3883 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 212: -#line 990 "bison_parser.y" /* yacc.c:1666 */ + case 210: +#line 988 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table_name).schema = nullptr; (yyval.table_name).name = (yyvsp[0].sval);} -#line 3908 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3889 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 211: +#line 989 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.table_name).schema = (yyvsp[-2].sval); (yyval.table_name).name = (yyvsp[0].sval); } +#line 3895 "bison_parser.cpp" /* yacc.c:1646 */ break; case 213: -#line 991 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.table_name).schema = (yyvsp[-2].sval); (yyval.table_name).name = (yyvsp[0].sval); } -#line 3914 "bison_parser.cpp" /* yacc.c:1666 */ +#line 995 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); } +#line 3901 "bison_parser.cpp" /* yacc.c:1646 */ break; case 215: -#line 997 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); } -#line 3920 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1001 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.alias_t) = nullptr; } +#line 3907 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 216: +#line 1005 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } +#line 3913 "bison_parser.cpp" /* yacc.c:1646 */ break; case 217: -#line 1003 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.alias_t) = nullptr; } -#line 3926 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 218: -#line 1007 "bison_parser.y" /* yacc.c:1666 */ +#line 1006 "bison_parser.y" /* yacc.c:1646 */ { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } -#line 3932 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3919 "bison_parser.cpp" /* yacc.c:1646 */ break; case 219: -#line 1008 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } -#line 3938 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 221: -#line 1014 "bison_parser.y" /* yacc.c:1666 */ +#line 1012 "bison_parser.y" /* yacc.c:1646 */ { (yyval.alias_t) = nullptr; } -#line 3944 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3925 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 222: -#line 1023 "bison_parser.y" /* yacc.c:1666 */ + case 220: +#line 1021 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3952,11 +3933,11 @@ yyreduce: (yyval.table)->join->left = (yyvsp[-3].table); (yyval.table)->join->right = (yyvsp[0].table); } -#line 3956 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3937 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 223: -#line 1031 "bison_parser.y" /* yacc.c:1666 */ + case 221: +#line 1029 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3965,11 +3946,11 @@ yyreduce: (yyval.table)->join->right = (yyvsp[-2].table); (yyval.table)->join->condition = (yyvsp[0].expr); } -#line 3969 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3950 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 224: -#line 1041 "bison_parser.y" /* yacc.c:1666 */ + case 222: +#line 1039 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3985,83 +3966,83 @@ yyreduce: (yyval.table)->join->condition = Expr::makeOpBinary(left_col, kOpEquals, right_col); delete (yyvsp[-1].expr); } -#line 3989 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3970 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 223: +#line 1057 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinInner; } +#line 3976 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 224: +#line 1058 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinLeft; } +#line 3982 "bison_parser.cpp" /* yacc.c:1646 */ break; case 225: -#line 1059 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinInner; } -#line 3995 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1059 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinLeft; } +#line 3988 "bison_parser.cpp" /* yacc.c:1646 */ break; case 226: -#line 1060 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinLeft; } -#line 4001 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1060 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinRight; } +#line 3994 "bison_parser.cpp" /* yacc.c:1646 */ break; case 227: -#line 1061 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinLeft; } -#line 4007 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1061 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinRight; } +#line 4000 "bison_parser.cpp" /* yacc.c:1646 */ break; case 228: -#line 1062 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinRight; } -#line 4013 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1062 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinFull; } +#line 4006 "bison_parser.cpp" /* yacc.c:1646 */ break; case 229: -#line 1063 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinRight; } -#line 4019 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1063 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinFull; } +#line 4012 "bison_parser.cpp" /* yacc.c:1646 */ break; case 230: -#line 1064 "bison_parser.y" /* yacc.c:1666 */ +#line 1064 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kJoinFull; } -#line 4025 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4018 "bison_parser.cpp" /* yacc.c:1646 */ break; case 231: -#line 1065 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinFull; } -#line 4031 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1065 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinCross; } +#line 4024 "bison_parser.cpp" /* yacc.c:1646 */ break; case 232: -#line 1066 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinFull; } -#line 4037 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 233: -#line 1067 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinCross; } -#line 4043 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 234: -#line 1068 "bison_parser.y" /* yacc.c:1666 */ +#line 1066 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kJoinInner; } -#line 4049 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4030 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 238: -#line 1088 "bison_parser.y" /* yacc.c:1666 */ + case 236: +#line 1086 "bison_parser.y" /* yacc.c:1646 */ { (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); } -#line 4055 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4036 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 239: -#line 1089 "bison_parser.y" /* yacc.c:1666 */ + case 237: +#line 1087 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].str_vec)->push_back((yyvsp[0].sval)); (yyval.str_vec) = (yyvsp[-2].str_vec); } -#line 4061 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4042 "bison_parser.cpp" /* yacc.c:1646 */ break; -#line 4065 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4046 "bison_parser.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4184,6 +4165,7 @@ yyerrorlab: if (/*CONSTCOND*/ 0) goto yyerrorlab; + yyerror_range[1] = yylsp[1-yylen]; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); @@ -4295,7 +4277,7 @@ yyreturn: #endif return yyresult; } -#line 1092 "bison_parser.y" /* yacc.c:1910 */ +#line 1090 "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 851e6e9..de869f1 100644 --- a/src/parser/bison_parser.h +++ b/src/parser/bison_parser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.1. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,7 +48,7 @@ extern int hsql_debug; #endif /* "%code requires" blocks. */ -#line 35 "bison_parser.y" /* yacc.c:1919 */ +#line 35 "bison_parser.y" /* yacc.c:1909 */ // %code requires block @@ -72,7 +72,7 @@ extern int hsql_debug; } \ } -#line 76 "bison_parser.h" /* yacc.c:1919 */ +#line 76 "bison_parser.h" /* yacc.c:1909 */ /* Token type. */ #ifndef HSQL_TOKENTYPE @@ -230,7 +230,7 @@ extern int hsql_debug; union HSQL_STYPE { -#line 95 "bison_parser.y" /* yacc.c:1919 */ +#line 95 "bison_parser.y" /* yacc.c:1909 */ double fval; int64_t ival; @@ -272,7 +272,7 @@ union HSQL_STYPE std::vector* expr_vec; std::vector* order_vec; -#line 276 "bison_parser.h" /* yacc.c:1919 */ +#line 276 "bison_parser.h" /* yacc.c:1909 */ }; typedef union HSQL_STYPE HSQL_STYPE; diff --git a/src/parser/bison_parser.y b/src/parser/bison_parser.y index 09d048d..26e83e7 100755 --- a/src/parser/bison_parser.y +++ b/src/parser/bison_parser.y @@ -724,18 +724,16 @@ opt_order_type: // TODO: TOP and LIMIT can take more than just int literals. opt_top: - TOP int_literal { $$ = new LimitDescription($2->ival, kNoOffset); delete $2; } + TOP int_literal { $$ = new LimitDescription($2, nullptr); } | /* empty */ { $$ = nullptr; } ; opt_limit: - LIMIT int_literal { $$ = new LimitDescription($2->ival, kNoOffset); delete $2; } - | LIMIT int_literal OFFSET int_literal { $$ = new LimitDescription($2->ival, $4->ival); delete $2; delete $4; } - | OFFSET int_literal { $$ = new LimitDescription(kNoLimit, $2->ival); delete $2; } - | LIMIT ALL { $$ = nullptr; } - | LIMIT NULL { $$ = nullptr; } - | LIMIT ALL OFFSET int_literal { $$ = new LimitDescription(kNoLimit, $4->ival); delete $4; } - | LIMIT NULL OFFSET int_literal { $$ = new LimitDescription(kNoLimit, $4->ival); delete $4; } + LIMIT expr { $$ = new LimitDescription($2, nullptr); } + | OFFSET expr { $$ = new LimitDescription(nullptr, $2); } + | LIMIT expr OFFSET expr { $$ = new LimitDescription($2, $4); } + | LIMIT ALL { $$ = new LimitDescription(nullptr, nullptr); } + | LIMIT ALL OFFSET expr { $$ = new LimitDescription(nullptr, $4); } | /* empty */ { $$ = nullptr; } ; diff --git a/src/sql/SelectStatement.h b/src/sql/SelectStatement.h index 8bc3365..d1d5007 100644 --- a/src/sql/SelectStatement.h +++ b/src/sql/SelectStatement.h @@ -21,15 +21,13 @@ namespace hsql { Expr* expr; }; - const int64_t kNoLimit = -1; - const int64_t kNoOffset = -1; - // Description of the limit clause within a select statement. struct LimitDescription { - LimitDescription(int64_t limit, int64_t offset); + LimitDescription(Expr* limit, Expr* offset); + virtual ~LimitDescription(); - int64_t limit; - int64_t offset; + Expr* limit; + Expr* offset; }; // Description of the group-by clause within a select statement. diff --git a/src/sql/statements.cpp b/src/sql/statements.cpp index 8adf446..3589f97 100755 --- a/src/sql/statements.cpp +++ b/src/sql/statements.cpp @@ -202,9 +202,14 @@ namespace hsql { } // LimitDescription - LimitDescription::LimitDescription(int64_t limit, int64_t offset) : - limit(limit >= 0 ? limit : kNoLimit), - offset(offset > 0 ? offset : kNoOffset) {} + LimitDescription::LimitDescription(Expr* limit, Expr* offset) : + limit(limit), + offset(offset) {} + + LimitDescription::~LimitDescription() { + delete limit; + delete offset; + } // GroypByDescription GroupByDescription::GroupByDescription() : diff --git a/src/util/sqlhelper.cpp b/src/util/sqlhelper.cpp index 2d672b0..0fd7091 100755 --- a/src/util/sqlhelper.cpp +++ b/src/util/sqlhelper.cpp @@ -190,7 +190,9 @@ namespace hsql { if (stmt->limit != nullptr) { inprint("Limit:", numIndent + 1); - inprint(stmt->limit->limit, numIndent + 2); + printExpression(stmt->limit->limit, numIndent + 2); + inprint("Offset:", numIndent + 1); + printExpression(stmt->limit->offset, numIndent + 2); } } diff --git a/test/select_tests.cpp b/test/select_tests.cpp index 9f63ee3..d94ba89 100644 --- a/test/select_tests.cpp +++ b/test/select_tests.cpp @@ -534,56 +534,97 @@ TEST(SetLimitOffset) { SelectStatement* stmt; TEST_PARSE_SQL_QUERY("select a from t1 limit 1; \ + select a from t1 limit 1 + 2; \ + select a from t1 offset 1; \ + select a from t1 offset 1 + 2; \ select a from t1 limit 1 offset 1; \ - select a from t1 limit 0; \ - select a from t1 limit 0 offset 1; \ - select a from t1 limit 1 offset 0; \ + select a from t1 limit 1 + 2 offset 1 + 2; \ + select a from t1 limit 1 offset NULL; \ + select a from t1 limit ALL; \ + select a from t1 limit NULL; \ select a from t1 limit ALL offset 1; \ select a from t1 limit NULL offset 1; \ - select a from t1 offset 1; \ select top 10 a from t1; \ - select top 20 a from t1 limit 10;", - result, 10); + select top 20 a from t1 limit 10; \ + select a from t1 limit (SELECT MAX(b) FROM t1) offset (SELECT MIN(b) FROM t1);", + result, 14); stmt = (SelectStatement*) result.getStatement(0); - ASSERT_EQ(stmt->limit->limit, 1); - ASSERT_EQ(stmt->limit->offset, kNoOffset); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 1); + ASSERT_NULL(stmt->limit->offset); stmt = (SelectStatement*) result.getStatement(1); - ASSERT_EQ(stmt->limit->limit, 1); - ASSERT_EQ(stmt->limit->offset, 1); + ASSERT_EQ(stmt->limit->limit->type, kExprOperator); + ASSERT_EQ(stmt->limit->limit->opType, kOpPlus); + ASSERT_EQ(stmt->limit->limit->expr->ival, 1); + ASSERT_EQ(stmt->limit->limit->expr2->ival, 2); + ASSERT_NULL(stmt->limit->offset); stmt = (SelectStatement*) result.getStatement(2); - ASSERT_EQ(stmt->limit->limit, 0); - ASSERT_EQ(stmt->limit->offset, kNoOffset); + ASSERT_NULL(stmt->limit->limit); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); stmt = (SelectStatement*) result.getStatement(3); - ASSERT_EQ(stmt->limit->limit, 0); - ASSERT_EQ(stmt->limit->offset, 1); + ASSERT_NULL(stmt->limit->limit); + ASSERT_EQ(stmt->limit->offset->type, kExprOperator); + ASSERT_EQ(stmt->limit->offset->opType, kOpPlus); + ASSERT_EQ(stmt->limit->offset->expr->ival, 1); + ASSERT_EQ(stmt->limit->offset->expr2->ival, 2); stmt = (SelectStatement*) result.getStatement(4); - ASSERT_EQ(stmt->limit->limit, 1); - ASSERT_EQ(stmt->limit->offset, kNoOffset); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 1); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); stmt = (SelectStatement*) result.getStatement(5); - ASSERT_EQ(stmt->limit->limit, kNoLimit); - ASSERT_EQ(stmt->limit->offset, 1); + ASSERT_EQ(stmt->limit->limit->type, kExprOperator); + ASSERT_EQ(stmt->limit->limit->opType, kOpPlus); + ASSERT_EQ(stmt->limit->limit->expr->ival, 1); + ASSERT_EQ(stmt->limit->limit->expr2->ival, 2); + ASSERT_EQ(stmt->limit->offset->type, kExprOperator); + ASSERT_EQ(stmt->limit->offset->opType, kOpPlus); + ASSERT_EQ(stmt->limit->offset->expr->ival, 1); + ASSERT_EQ(stmt->limit->offset->expr2->ival, 2); stmt = (SelectStatement*) result.getStatement(6); - ASSERT_EQ(stmt->limit->limit, kNoLimit); - ASSERT_EQ(stmt->limit->offset, 1); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 1); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralNull); stmt = (SelectStatement*) result.getStatement(7); - ASSERT_EQ(stmt->limit->limit, kNoLimit); - ASSERT_EQ(stmt->limit->offset, 1); + ASSERT_NULL(stmt->limit->limit); + ASSERT_NULL(stmt->limit->offset); stmt = (SelectStatement*) result.getStatement(8); - ASSERT_EQ(stmt->limit->limit, 10); - ASSERT_EQ(stmt->limit->offset, kNoOffset); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralNull); + ASSERT_NULL(stmt->limit->offset); stmt = (SelectStatement*) result.getStatement(9); - ASSERT_EQ(stmt->limit->limit, 10); - ASSERT_EQ(stmt->limit->offset, kNoOffset); + ASSERT_NULL(stmt->limit->limit); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); + + stmt = (SelectStatement*) result.getStatement(10); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralNull); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); + + stmt = (SelectStatement*) result.getStatement(11); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 10); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*) result.getStatement(12); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 10); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*) result.getStatement(13); + ASSERT_EQ(stmt->limit->limit->type, kExprSelect); + ASSERT_EQ(stmt->limit->offset->type, kExprSelect); } TEST(Extract) {