diff --git a/pdo_user_sql_parser.c b/pdo_user_sql_parser.c index 18bbe77..a1ccf22 100644 --- a/pdo_user_sql_parser.c +++ b/pdo_user_sql_parser.c @@ -206,6 +206,17 @@ static zval *pusp_do_field(php_pdo_user_sql_token *database, php_pdo_user_sql_to return ret; } +static zval *pusp_do_placeholder(zval *placeholder) +{ + zval *ret; + + MAKE_STD_ZVAL(ret); + array_init(ret); + add_assoc_zval(ret, "placeholder", placeholder); + + return ret; +} + /* ---------------- */ static inline zval *pusp_do_select_statement(zval *fieldlist, zval *tableexpr, zval *modifiers) @@ -340,7 +351,7 @@ static inline zval *pusp_do_drop_statement(zval *table) add_assoc_zval(R, "op2", B); \ } -#line 345 "pdo_user_sql_parser.c" +#line 356 "pdo_user_sql_parser.c" /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -390,24 +401,24 @@ static inline zval *pusp_do_drop_statement(zval *table) ** defined, then do no error processing. */ #define YYCODETYPE unsigned char -#define YYNOCODE 140 +#define YYNOCODE 141 #define YYACTIONTYPE unsigned short int #define php_pdo_user_sql_parserTOKENTYPE php_pdo_user_sql_token typedef union { php_pdo_user_sql_parserTOKENTYPE yy0; - zval* yy92; - zval** yy204; - int yy279; + zval* yy8; + zval** yy142; + int yy281; } YYMINORTYPE; #define YYSTACKDEPTH 100 #define php_pdo_user_sql_parserARG_SDECL zval *return_value; #define php_pdo_user_sql_parserARG_PDECL ,zval *return_value #define php_pdo_user_sql_parserARG_FETCH zval *return_value = yypParser->return_value #define php_pdo_user_sql_parserARG_STORE yypParser->return_value = return_value -#define YYNSTATE 304 -#define YYNRULE 147 -#define YYERRORSYMBOL 97 -#define YYERRSYMDT yy279 +#define YYNSTATE 314 +#define YYNRULE 152 +#define YYERRORSYMBOL 98 +#define YYERRSYMDT yy281 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) @@ -460,215 +471,222 @@ typedef union { ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 289, 452, 1, 3, 33, 35, 37, 304, 18, 29, - /* 10 */ 63, 65, 67, 206, 207, 216, 220, 224, 228, 232, - /* 20 */ 236, 238, 247, 251, 255, 259, 263, 267, 268, 269, - /* 30 */ 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, - /* 40 */ 285, 296, 92, 39, 111, 117, 5, 105, 61, 109, - /* 50 */ 30, 20, 41, 42, 44, 10, 6, 88, 84, 86, - /* 60 */ 70, 76, 78, 92, 82, 47, 33, 35, 37, 32, - /* 70 */ 18, 29, 51, 4, 122, 123, 50, 51, 88, 84, - /* 80 */ 86, 70, 76, 78, 155, 82, 305, 33, 35, 37, - /* 90 */ 39, 18, 29, 63, 65, 67, 178, 101, 20, 41, - /* 100 */ 42, 44, 161, 7, 173, 176, 9, 185, 301, 103, - /* 110 */ 90, 184, 47, 43, 33, 35, 37, 32, 18, 29, - /* 120 */ 130, 54, 2, 33, 35, 37, 130, 18, 29, 52, - /* 130 */ 196, 130, 72, 74, 80, 19, 11, 140, 19, 129, - /* 140 */ 45, 19, 142, 45, 153, 128, 45, 121, 154, 25, - /* 150 */ 28, 16, 14, 72, 74, 80, 8, 99, 13, 46, - /* 160 */ 43, 119, 46, 125, 19, 46, 142, 12, 15, 45, - /* 170 */ 33, 35, 37, 17, 18, 29, 198, 200, 204, 202, - /* 180 */ 205, 33, 35, 37, 149, 18, 29, 19, 46, 147, - /* 190 */ 22, 132, 45, 134, 136, 138, 28, 132, 26, 134, - /* 200 */ 136, 138, 132, 21, 134, 136, 138, 23, 97, 93, - /* 210 */ 95, 46, 56, 57, 58, 59, 60, 51, 53, 19, - /* 220 */ 61, 19, 19, 24, 45, 166, 45, 45, 69, 107, - /* 230 */ 69, 69, 165, 19, 62, 106, 64, 66, 45, 175, - /* 240 */ 127, 143, 69, 46, 19, 46, 46, 19, 68, 45, - /* 250 */ 127, 143, 45, 104, 108, 19, 69, 46, 171, 102, - /* 260 */ 45, 19, 110, 112, 116, 171, 45, 19, 46, 146, - /* 270 */ 121, 46, 45, 18, 29, 19, 69, 113, 19, 46, - /* 280 */ 45, 157, 148, 45, 153, 46, 124, 49, 150, 55, - /* 290 */ 142, 46, 19, 41, 42, 44, 164, 45, 159, 46, - /* 300 */ 19, 48, 46, 19, 16, 45, 47, 126, 45, 31, - /* 310 */ 19, 114, 34, 19, 172, 45, 46, 118, 45, 36, - /* 320 */ 19, 27, 38, 120, 46, 45, 19, 46, 189, 40, - /* 330 */ 126, 45, 300, 19, 46, 71, 19, 46, 45, 133, - /* 340 */ 131, 45, 73, 141, 46, 75, 144, 19, 199, 151, - /* 350 */ 46, 135, 45, 45, 43, 145, 77, 46, 19, 19, - /* 360 */ 46, 19, 191, 45, 45, 152, 45, 79, 81, 19, - /* 370 */ 83, 46, 46, 137, 45, 19, 41, 42, 85, 190, - /* 380 */ 45, 19, 46, 46, 87, 46, 45, 293, 139, 19, - /* 390 */ 89, 19, 19, 46, 45, 293, 45, 45, 91, 46, - /* 400 */ 94, 96, 19, 160, 292, 46, 156, 45, 163, 19, - /* 410 */ 158, 98, 299, 46, 45, 46, 46, 295, 100, 19, - /* 420 */ 19, 162, 45, 291, 45, 45, 46, 294, 115, 170, - /* 430 */ 295, 168, 45, 46, 169, 45, 298, 167, 174, 61, - /* 440 */ 177, 46, 181, 46, 46, 179, 180, 182, 183, 186, - /* 450 */ 187, 46, 188, 194, 46, 193, 192, 195, 197, 213, - /* 460 */ 201, 208, 203, 212, 209, 211, 210, 215, 217, 219, - /* 470 */ 214, 218, 221, 223, 222, 225, 227, 226, 230, 229, - /* 480 */ 242, 233, 231, 234, 244, 246, 235, 237, 302, 239, - /* 490 */ 240, 260, 243, 241, 262, 249, 264, 245, 248, 266, - /* 500 */ 282, 250, 253, 252, 254, 284, 257, 256, 258, 270, - /* 510 */ 272, 261, 265, 286, 288, 283, 290, 288, 287, 297, - /* 520 */ 288, 303, + /* 0 */ 299, 38, 40, 42, 314, 18, 29, 38, 40, 42, + /* 10 */ 37, 18, 29, 216, 217, 226, 230, 234, 238, 242, + /* 20 */ 246, 248, 257, 261, 265, 269, 273, 277, 278, 279, + /* 30 */ 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, + /* 40 */ 295, 306, 95, 44, 163, 59, 60, 61, 62, 63, + /* 50 */ 35, 157, 33, 34, 47, 54, 5, 91, 87, 89, + /* 60 */ 73, 79, 81, 95, 85, 50, 38, 40, 42, 37, + /* 70 */ 18, 29, 125, 126, 133, 31, 33, 34, 91, 87, + /* 80 */ 89, 73, 79, 81, 9, 85, 6, 38, 40, 42, + /* 90 */ 44, 18, 29, 315, 165, 44, 7, 35, 20, 33, + /* 100 */ 34, 47, 104, 20, 33, 34, 47, 54, 4, 467, + /* 110 */ 1, 3, 50, 30, 46, 133, 55, 50, 8, 16, + /* 120 */ 133, 64, 19, 66, 68, 70, 176, 48, 132, 2, + /* 130 */ 143, 156, 75, 77, 83, 164, 15, 171, 131, 183, + /* 140 */ 186, 152, 195, 311, 150, 135, 49, 137, 139, 141, + /* 150 */ 206, 10, 305, 75, 77, 83, 93, 48, 301, 145, + /* 160 */ 30, 46, 16, 18, 29, 30, 46, 102, 13, 38, + /* 170 */ 40, 42, 53, 18, 29, 56, 49, 11, 19, 27, + /* 180 */ 38, 40, 42, 48, 18, 29, 135, 124, 137, 139, + /* 190 */ 141, 135, 25, 137, 139, 141, 208, 210, 214, 212, + /* 200 */ 215, 122, 49, 128, 19, 167, 38, 40, 42, 48, + /* 210 */ 18, 29, 19, 28, 22, 14, 58, 48, 100, 96, + /* 220 */ 98, 28, 169, 26, 130, 146, 114, 120, 49, 108, + /* 230 */ 64, 112, 19, 57, 129, 19, 49, 48, 12, 24, + /* 240 */ 48, 72, 162, 19, 72, 21, 19, 65, 48, 159, + /* 250 */ 67, 48, 72, 175, 145, 72, 49, 19, 69, 49, + /* 260 */ 19, 71, 48, 33, 34, 48, 107, 49, 19, 72, + /* 270 */ 49, 19, 105, 48, 23, 113, 48, 119, 25, 181, + /* 280 */ 124, 49, 19, 149, 49, 54, 32, 48, 109, 19, + /* 290 */ 116, 72, 49, 110, 48, 49, 127, 151, 156, 33, + /* 300 */ 34, 47, 153, 174, 145, 19, 49, 111, 130, 146, + /* 310 */ 48, 19, 50, 49, 17, 115, 48, 19, 19, 19, + /* 320 */ 52, 182, 48, 48, 48, 19, 51, 36, 39, 49, + /* 330 */ 48, 158, 199, 188, 41, 49, 310, 66, 68, 70, + /* 340 */ 185, 49, 49, 49, 117, 19, 19, 19, 194, 49, + /* 350 */ 48, 48, 48, 106, 43, 45, 74, 121, 19, 19, + /* 360 */ 123, 46, 129, 48, 48, 136, 181, 76, 78, 49, + /* 370 */ 49, 49, 19, 134, 209, 19, 138, 48, 140, 48, + /* 380 */ 48, 80, 49, 49, 82, 19, 19, 144, 19, 201, + /* 390 */ 48, 48, 142, 48, 84, 86, 49, 88, 49, 49, + /* 400 */ 303, 161, 19, 147, 148, 154, 200, 48, 24, 49, + /* 410 */ 49, 90, 49, 19, 19, 19, 19, 302, 48, 48, + /* 420 */ 48, 48, 92, 94, 97, 99, 49, 19, 303, 155, + /* 430 */ 160, 170, 48, 166, 168, 172, 101, 49, 49, 49, + /* 440 */ 49, 19, 304, 19, 19, 309, 48, 48, 48, 48, + /* 450 */ 103, 49, 118, 180, 305, 173, 178, 177, 179, 48, + /* 460 */ 308, 184, 64, 187, 191, 49, 49, 49, 49, 189, + /* 470 */ 192, 190, 193, 196, 197, 198, 202, 203, 49, 204, + /* 480 */ 207, 205, 211, 223, 213, 218, 222, 219, 221, 225, + /* 490 */ 220, 228, 227, 224, 252, 231, 229, 232, 235, 233, + /* 500 */ 236, 239, 237, 254, 240, 256, 270, 243, 241, 244, + /* 510 */ 247, 245, 272, 274, 249, 251, 250, 276, 292, 294, + /* 520 */ 253, 296, 298, 255, 259, 258, 260, 263, 262, 264, + /* 530 */ 267, 266, 268, 300, 307, 280, 313, 271, 275, 312, + /* 540 */ 282, 293, 297, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 39, 98, 99, 100, 25, 26, 27, 0, 29, 30, - /* 10 */ 12, 13, 14, 52, 53, 54, 55, 56, 57, 58, + /* 0 */ 39, 25, 26, 27, 0, 29, 30, 25, 26, 27, + /* 10 */ 28, 29, 30, 52, 53, 54, 55, 56, 57, 58, /* 20 */ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, /* 30 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - /* 40 */ 79, 80, 1, 24, 2, 3, 10, 5, 6, 7, - /* 50 */ 31, 32, 33, 34, 35, 102, 32, 16, 17, 18, + /* 40 */ 79, 80, 1, 24, 25, 131, 132, 133, 134, 135, + /* 50 */ 31, 32, 33, 34, 35, 8, 10, 16, 17, 18, /* 60 */ 19, 20, 21, 1, 23, 46, 25, 26, 27, 28, - /* 70 */ 29, 30, 8, 9, 95, 96, 123, 8, 16, 17, - /* 80 */ 18, 19, 20, 21, 31, 23, 0, 25, 26, 27, - /* 90 */ 24, 29, 30, 12, 13, 14, 105, 31, 32, 33, - /* 100 */ 34, 35, 38, 101, 40, 41, 37, 43, 44, 28, - /* 110 */ 12, 120, 46, 94, 25, 26, 27, 28, 29, 30, - /* 120 */ 15, 108, 36, 25, 26, 27, 15, 29, 30, 107, - /* 130 */ 1, 15, 91, 92, 93, 113, 11, 100, 113, 28, - /* 140 */ 118, 113, 129, 118, 122, 108, 118, 122, 126, 31, - /* 150 */ 122, 11, 124, 91, 92, 93, 100, 12, 31, 137, - /* 160 */ 94, 136, 137, 138, 113, 137, 129, 123, 28, 118, - /* 170 */ 25, 26, 27, 122, 29, 30, 47, 48, 49, 50, - /* 180 */ 51, 25, 26, 27, 11, 29, 30, 113, 137, 84, - /* 190 */ 32, 86, 118, 88, 89, 90, 122, 86, 124, 88, - /* 200 */ 89, 90, 86, 85, 88, 89, 90, 85, 16, 17, - /* 210 */ 18, 137, 130, 131, 132, 133, 134, 8, 45, 113, - /* 220 */ 6, 113, 113, 32, 118, 11, 118, 118, 122, 11, - /* 230 */ 122, 122, 104, 113, 128, 118, 128, 128, 118, 104, - /* 240 */ 31, 32, 122, 137, 113, 137, 137, 113, 128, 118, - /* 250 */ 31, 32, 118, 122, 118, 113, 122, 137, 130, 128, - /* 260 */ 118, 113, 128, 4, 122, 130, 118, 113, 137, 108, - /* 270 */ 122, 137, 118, 29, 30, 113, 122, 135, 113, 137, - /* 280 */ 118, 11, 128, 118, 122, 137, 138, 122, 126, 109, - /* 290 */ 129, 137, 113, 33, 34, 35, 103, 118, 28, 137, - /* 300 */ 113, 122, 137, 113, 11, 118, 46, 127, 118, 122, - /* 310 */ 113, 11, 122, 113, 121, 118, 137, 4, 118, 122, - /* 320 */ 113, 28, 122, 11, 137, 118, 113, 137, 106, 122, - /* 330 */ 127, 118, 110, 113, 137, 122, 113, 137, 118, 87, - /* 340 */ 32, 118, 122, 28, 137, 122, 85, 113, 113, 15, - /* 350 */ 137, 87, 118, 118, 94, 32, 122, 137, 113, 113, - /* 360 */ 137, 113, 11, 118, 118, 32, 118, 122, 122, 113, - /* 370 */ 122, 137, 137, 87, 118, 113, 33, 34, 122, 28, - /* 380 */ 118, 113, 137, 137, 122, 137, 118, 11, 87, 113, - /* 390 */ 122, 113, 113, 137, 118, 11, 118, 118, 122, 137, - /* 400 */ 122, 122, 113, 32, 28, 137, 125, 118, 39, 113, - /* 410 */ 32, 122, 28, 137, 118, 137, 137, 113, 122, 113, - /* 420 */ 113, 32, 118, 119, 118, 118, 137, 113, 122, 122, - /* 430 */ 113, 32, 118, 137, 19, 118, 119, 121, 32, 6, - /* 440 */ 42, 137, 32, 137, 137, 11, 120, 83, 32, 42, - /* 450 */ 32, 137, 31, 111, 137, 32, 110, 112, 46, 31, - /* 460 */ 49, 114, 49, 81, 115, 82, 116, 28, 114, 116, - /* 470 */ 118, 115, 114, 116, 115, 114, 116, 115, 115, 114, - /* 480 */ 31, 114, 116, 115, 11, 28, 116, 114, 42, 117, - /* 490 */ 115, 31, 118, 116, 28, 115, 31, 118, 117, 28, - /* 500 */ 31, 116, 115, 117, 116, 28, 115, 117, 116, 114, - /* 510 */ 114, 118, 118, 31, 28, 118, 31, 139, 118, 31, - /* 520 */ 139, 32, + /* 70 */ 29, 30, 96, 97, 15, 32, 33, 34, 16, 17, + /* 80 */ 18, 19, 20, 21, 37, 23, 32, 25, 26, 27, + /* 90 */ 24, 29, 30, 0, 31, 24, 102, 31, 32, 33, + /* 100 */ 34, 35, 31, 32, 33, 34, 35, 8, 9, 99, + /* 110 */ 100, 101, 46, 94, 95, 15, 108, 46, 101, 11, + /* 120 */ 15, 6, 114, 12, 13, 14, 11, 119, 28, 36, + /* 130 */ 101, 123, 91, 92, 93, 127, 28, 38, 109, 40, + /* 140 */ 41, 11, 43, 44, 85, 86, 138, 88, 89, 90, + /* 150 */ 1, 103, 114, 91, 92, 93, 12, 119, 120, 130, + /* 160 */ 94, 95, 11, 29, 30, 94, 95, 12, 31, 25, + /* 170 */ 26, 27, 124, 29, 30, 45, 138, 11, 114, 28, + /* 180 */ 25, 26, 27, 119, 29, 30, 86, 123, 88, 89, + /* 190 */ 90, 86, 31, 88, 89, 90, 47, 48, 49, 50, + /* 200 */ 51, 137, 138, 139, 114, 11, 25, 26, 27, 119, + /* 210 */ 29, 30, 114, 123, 32, 125, 110, 119, 16, 17, + /* 220 */ 18, 123, 28, 125, 31, 32, 2, 3, 138, 5, + /* 230 */ 6, 7, 114, 109, 128, 114, 138, 119, 124, 32, + /* 240 */ 119, 123, 25, 114, 123, 84, 114, 129, 119, 32, + /* 250 */ 129, 119, 123, 105, 130, 123, 138, 114, 129, 138, + /* 260 */ 114, 129, 119, 33, 34, 119, 123, 138, 114, 123, + /* 270 */ 138, 114, 129, 119, 84, 129, 119, 123, 31, 131, + /* 280 */ 123, 138, 114, 109, 138, 8, 119, 119, 119, 114, + /* 290 */ 136, 123, 138, 11, 119, 138, 139, 129, 123, 33, + /* 300 */ 34, 35, 127, 104, 130, 114, 138, 119, 31, 32, + /* 310 */ 119, 114, 46, 138, 123, 4, 119, 114, 114, 114, + /* 320 */ 123, 122, 119, 119, 119, 114, 123, 123, 123, 138, + /* 330 */ 119, 84, 107, 106, 123, 138, 111, 12, 13, 14, + /* 340 */ 105, 138, 138, 138, 11, 114, 114, 114, 121, 138, + /* 350 */ 119, 119, 119, 28, 123, 123, 123, 4, 114, 114, + /* 360 */ 11, 95, 128, 119, 119, 87, 131, 123, 123, 138, + /* 370 */ 138, 138, 114, 32, 114, 114, 87, 119, 87, 119, + /* 380 */ 119, 123, 138, 138, 123, 114, 114, 28, 114, 11, + /* 390 */ 119, 119, 87, 119, 123, 123, 138, 123, 138, 138, + /* 400 */ 11, 25, 114, 84, 32, 15, 28, 119, 32, 138, + /* 410 */ 138, 123, 138, 114, 114, 114, 114, 28, 119, 119, + /* 420 */ 119, 119, 123, 123, 123, 123, 138, 114, 11, 32, + /* 430 */ 84, 32, 119, 126, 32, 32, 123, 138, 138, 138, + /* 440 */ 138, 114, 114, 114, 114, 28, 119, 119, 119, 119, + /* 450 */ 123, 138, 123, 123, 114, 39, 32, 122, 19, 119, + /* 460 */ 120, 32, 6, 42, 32, 138, 138, 138, 138, 11, + /* 470 */ 83, 121, 32, 42, 32, 31, 111, 32, 138, 112, + /* 480 */ 46, 113, 49, 31, 49, 115, 81, 116, 82, 28, + /* 490 */ 117, 116, 115, 119, 31, 115, 117, 116, 115, 117, + /* 500 */ 116, 115, 117, 11, 116, 28, 31, 115, 117, 116, + /* 510 */ 115, 117, 28, 31, 118, 117, 116, 28, 31, 28, + /* 520 */ 119, 31, 28, 119, 116, 118, 117, 116, 118, 117, + /* 530 */ 116, 118, 117, 31, 31, 115, 32, 119, 119, 42, + /* 540 */ 115, 119, 119, }; #define YY_SHIFT_USE_DFLT (-40) static const short yy_shift_ofst[] = { - /* 0 */ 64, 86, 7, -40, 36, 24, 53, 69, -40, 127, - /* 10 */ 125, 127, -40, 19, 140, -40, 19, 156, 19, -40, - /* 20 */ 118, 158, 122, 191, -40, 19, 293, -40, 156, 19, - /* 30 */ 19, 89, -40, 19, 244, 19, 244, 19, 244, 19, - /* 40 */ 156, -40, -40, -40, -40, -40, -40, -40, -40, -40, - /* 50 */ -40, 19, 173, 219, 116, 42, -40, -40, -40, -40, - /* 60 */ -40, 66, -2, 66, -40, 66, -40, 66, -40, 62, - /* 70 */ 19, 156, 19, 156, 19, 156, 19, 156, 19, 156, - /* 80 */ 19, 156, 19, 156, 19, 156, 19, 156, 19, 98, - /* 90 */ 19, 156, 192, 19, 156, 19, 156, 19, 145, 19, - /* 100 */ 156, 66, 81, -40, 41, 343, 218, 343, -40, 66, - /* 110 */ -2, 259, 19, 300, 19, 156, 156, 313, 19, 312, - /* 120 */ 19, -21, -40, -40, -40, -40, 219, 209, 111, -40, - /* 130 */ 308, -40, 252, -40, 264, -40, 286, -40, 301, -40, - /* 140 */ 315, -40, -40, 261, 323, -40, 105, 66, -2, 19, - /* 150 */ 334, 333, -40, 156, 334, 371, 270, 378, -40, -40, - /* 160 */ -40, 389, 369, 399, 214, -40, 399, -40, 415, 19, - /* 170 */ 156, -40, -40, 406, 433, -40, 398, 410, 434, 410, - /* 180 */ -40, 364, 416, -40, -40, 407, 418, 421, 423, 351, - /* 190 */ -40, 423, -40, -39, -40, 129, 412, -40, 260, -40, - /* 200 */ 411, -40, 413, -40, -40, -40, -40, 428, 382, 383, - /* 210 */ -40, -40, -40, 343, 439, -40, 428, 382, 383, -40, - /* 220 */ 428, 382, 383, -40, 428, 382, 383, -40, 428, 382, - /* 230 */ 383, -40, 428, 382, 383, -40, 428, -40, 449, 382, - /* 240 */ 383, -40, 343, 473, 343, 457, -40, 449, 382, 383, - /* 250 */ -40, 449, 382, 383, -40, 449, 382, 383, -40, 460, - /* 260 */ 343, 466, -40, 465, 343, 471, -40, -40, -40, 428, - /* 270 */ -40, 428, -40, -40, -40, -40, -40, -40, -40, -40, - /* 280 */ -40, 469, 343, 477, -40, 482, 343, 486, -40, 485, - /* 290 */ 260, 376, -40, 260, -40, -40, 488, 260, 384, -40, - /* 300 */ -40, 446, 489, -40, + /* 0 */ 99, 93, 4, -40, 46, 54, 63, 47, -40, 137, + /* 10 */ 166, 137, -40, 66, 108, -40, 66, 181, 66, -40, + /* 20 */ 161, 182, 190, 207, -40, 66, 151, -40, 181, 66, + /* 30 */ 43, -40, -40, -40, -40, 66, -18, -40, 66, 134, + /* 40 */ 66, 134, 66, 134, 66, 181, -40, -40, -40, -40, + /* 50 */ -40, -40, -40, -40, 19, 130, 193, 105, 224, -40, + /* 60 */ -40, -40, -40, -40, 71, 111, 71, -40, 71, -40, + /* 70 */ 71, -40, 62, 66, 181, 66, 181, 66, 181, 66, + /* 80 */ 181, 66, 181, 66, 181, 66, 181, 66, 181, 66, + /* 90 */ 181, 66, 144, 66, 181, 202, 66, 181, 66, 181, + /* 100 */ 66, 155, 66, 181, 71, 325, -40, 41, 230, 282, + /* 110 */ 230, -40, 71, 111, 311, 66, 333, 66, 181, 181, + /* 120 */ 353, 66, 349, 66, -24, -40, -40, -40, -40, 193, + /* 130 */ 277, 100, -40, 341, -40, 278, -40, 289, -40, 291, + /* 140 */ -40, 305, -40, 359, -40, -40, 319, 372, -40, 59, + /* 150 */ 71, 111, 19, 390, 397, -40, 181, 247, 217, 346, + /* 160 */ 376, -40, -40, -40, 390, 399, 194, 402, -40, -40, + /* 170 */ -40, 403, 416, 424, 115, -40, 424, -40, 439, 66, + /* 180 */ 181, -40, -40, 429, 456, -40, 421, 432, 458, 432, + /* 190 */ -40, 387, 440, -40, -40, 431, 442, 444, 445, 378, + /* 200 */ -40, 445, -40, -39, -40, 149, 434, -40, 266, -40, + /* 210 */ 433, -40, 435, -40, -40, -40, -40, 452, 405, 406, + /* 220 */ -40, -40, -40, 230, 461, -40, 452, 405, 406, -40, + /* 230 */ 452, 405, 406, -40, 452, 405, 406, -40, 452, 405, + /* 240 */ 406, -40, 452, 405, 406, -40, 452, -40, 463, 405, + /* 250 */ 406, -40, 230, 492, 230, 477, -40, 463, 405, 406, + /* 260 */ -40, 463, 405, 406, -40, 463, 405, 406, -40, 475, + /* 270 */ 230, 484, -40, 482, 230, 489, -40, -40, -40, 452, + /* 280 */ -40, 452, -40, -40, -40, -40, -40, -40, -40, -40, + /* 290 */ -40, 487, 230, 491, -40, 490, 230, 494, -40, 502, + /* 300 */ 266, 389, -40, 266, -40, -40, 503, 266, 417, -40, + /* 310 */ -40, 497, 504, -40, }; -#define YY_REDUCE_USE_DFLT (-98) +#define YY_REDUCE_USE_DFLT (-87) static const short yy_reduce_ofst[] = { - /* 0 */ -97, -98, -98, -98, -98, -98, 2, 56, -98, -47, - /* 10 */ -98, 44, -98, 28, -98, -98, 51, -98, 165, -98, - /* 20 */ -98, -98, -98, -98, -98, 74, -98, -98, -98, 179, - /* 30 */ 187, -98, -98, 190, -98, 197, -98, 200, -98, 207, - /* 40 */ -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - /* 50 */ -98, 22, -98, 13, 180, 82, -98, -98, -98, -98, - /* 60 */ -98, 106, -98, 108, -98, 109, -98, 120, -98, -98, - /* 70 */ 213, -98, 220, -98, 223, -98, 234, -98, 245, -98, - /* 80 */ 246, -98, 248, -98, 256, -98, 262, -98, 268, -98, - /* 90 */ 276, -98, -98, 278, -98, 279, -98, 289, -98, 296, - /* 100 */ -98, 131, -98, -98, -98, 117, -98, 136, -98, 134, - /* 110 */ -98, -98, 142, -98, 306, -98, -98, -98, 25, -98, - /* 120 */ 148, -98, -98, -98, -98, -98, 161, 37, 203, -98, - /* 130 */ -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - /* 140 */ -98, -98, -98, -98, -98, -98, 203, 154, -98, 162, - /* 150 */ -98, -98, -98, -98, -98, 281, -98, -98, -98, -98, - /* 160 */ -98, -98, -98, 193, 128, -98, 316, -98, -98, 307, - /* 170 */ -98, -98, -98, -98, 135, -98, -98, -9, -98, 326, - /* 180 */ -98, -98, -98, -98, -98, -98, -98, -98, 222, -98, - /* 190 */ -98, 346, -98, 342, 345, -98, -98, -98, 235, -98, - /* 200 */ -98, -98, -98, -98, -98, -98, -98, 347, 349, 350, - /* 210 */ -98, -98, -98, 352, -98, -98, 354, 356, 353, -98, - /* 220 */ 358, 359, 357, -98, 361, 362, 360, -98, 365, 363, - /* 230 */ 366, -98, 367, 368, 370, -98, 373, -98, 372, 375, - /* 240 */ 377, -98, 374, -98, 379, -98, -98, 381, 380, 385, - /* 250 */ -98, 386, 387, 388, -98, 390, 391, 392, -98, -98, - /* 260 */ 393, -98, -98, -98, 394, -98, -98, -98, -98, 395, - /* 270 */ -98, 396, -98, -98, -98, -98, -98, -98, -98, -98, - /* 280 */ -98, -98, 397, -98, -98, -98, 400, -98, -98, -98, - /* 290 */ 304, -98, -98, 314, -98, -98, -98, 317, -98, -98, - /* 300 */ -98, -98, -98, -98, + /* 0 */ 10, -87, -87, -87, -87, -87, -6, 17, -87, 48, + /* 10 */ -87, 114, -87, 90, -87, -87, 191, -87, 197, -87, + /* 20 */ -87, -87, -87, -87, -87, 98, -87, -87, -87, 203, + /* 30 */ 167, -87, -87, -87, -87, 204, -87, -87, 205, -87, + /* 40 */ 211, -87, 231, -87, 232, -87, -87, -87, -87, -87, + /* 50 */ -87, -87, -87, -87, 8, -87, 124, 106, -86, -87, + /* 60 */ -87, -87, -87, -87, 118, -87, 121, -87, 129, -87, + /* 70 */ 132, -87, -87, 233, -87, 244, -87, 245, -87, 258, + /* 80 */ -87, 261, -87, 271, -87, 272, -87, 274, -87, 288, + /* 90 */ -87, 299, -87, 300, -87, -87, 301, -87, 302, -87, + /* 100 */ 313, -87, 327, -87, 143, -87, -87, -87, 169, -87, + /* 110 */ 188, -87, 146, -87, -87, 154, -87, 329, -87, -87, + /* 120 */ -87, 64, -87, 157, -87, -87, -87, -87, -87, 174, + /* 130 */ 29, 234, -87, -87, -87, -87, -87, -87, -87, -87, + /* 140 */ -87, -87, -87, -87, -87, -87, -87, -87, -87, 234, + /* 150 */ 168, -87, 175, -87, -87, -87, -87, -87, -87, -87, + /* 160 */ -87, -87, -87, -87, -87, 307, -87, -87, -87, -87, + /* 170 */ -87, -87, -87, 199, 148, -87, 335, -87, -87, 330, + /* 180 */ -87, -87, -87, -87, 235, -87, -87, 227, -87, 350, + /* 190 */ -87, -87, -87, -87, -87, -87, -87, -87, 225, -87, + /* 200 */ -87, 365, -87, 367, 368, -87, -87, -87, 260, -87, + /* 210 */ -87, -87, -87, -87, -87, -87, -87, 370, 371, 373, + /* 220 */ -87, -87, -87, 374, -87, -87, 377, 375, 379, -87, + /* 230 */ 380, 381, 382, -87, 383, 384, 385, -87, 386, 388, + /* 240 */ 391, -87, 392, 393, 394, -87, 395, -87, 396, 400, + /* 250 */ 398, -87, 401, -87, 404, -87, -87, 407, 408, 409, + /* 260 */ -87, 410, 411, 412, -87, 413, 414, 415, -87, -87, + /* 270 */ 418, -87, -87, -87, 419, -87, -87, -87, -87, 420, + /* 280 */ -87, 425, -87, -87, -87, -87, -87, -87, -87, -87, + /* 290 */ -87, -87, 422, -87, -87, -87, 423, -87, -87, -87, + /* 300 */ 38, -87, -87, 328, -87, -87, -87, 340, -87, -87, + /* 310 */ -87, -87, -87, -87, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 451, 451, 451, 306, 451, 451, 377, 451, 307, 451, - /* 10 */ 308, 451, 371, 451, 451, 373, 451, 423, 451, 425, - /* 20 */ 428, 451, 427, 451, 426, 451, 451, 429, 424, 451, - /* 30 */ 451, 451, 430, 451, 433, 451, 434, 451, 435, 451, - /* 40 */ 436, 437, 438, 439, 440, 441, 442, 443, 432, 431, - /* 50 */ 372, 451, 451, 451, 398, 314, 393, 394, 395, 396, - /* 60 */ 397, 451, 399, 451, 406, 451, 407, 451, 408, 451, - /* 70 */ 451, 409, 451, 410, 451, 411, 451, 412, 451, 413, - /* 80 */ 451, 414, 451, 415, 451, 416, 451, 417, 451, 451, - /* 90 */ 451, 418, 451, 451, 419, 451, 420, 451, 451, 451, - /* 100 */ 421, 451, 451, 422, 451, 451, 451, 451, 400, 451, - /* 110 */ 401, 451, 451, 402, 451, 444, 445, 451, 451, 403, - /* 120 */ 451, 450, 448, 449, 446, 447, 451, 451, 451, 382, - /* 130 */ 451, 385, 451, 389, 451, 390, 451, 391, 451, 392, - /* 140 */ 451, 383, 386, 388, 451, 387, 451, 451, 384, 451, - /* 150 */ 378, 451, 381, 380, 379, 451, 451, 451, 374, 376, - /* 160 */ 375, 451, 451, 451, 405, 309, 451, 368, 451, 451, - /* 170 */ 370, 404, 369, 451, 405, 310, 451, 451, 311, 451, - /* 180 */ 365, 451, 451, 367, 366, 451, 451, 451, 451, 451, - /* 190 */ 312, 451, 315, 451, 324, 317, 451, 318, 451, 319, - /* 200 */ 451, 320, 451, 321, 322, 323, 325, 360, 356, 358, - /* 210 */ 326, 357, 355, 451, 451, 359, 360, 356, 358, 327, - /* 220 */ 360, 356, 358, 328, 360, 356, 358, 329, 360, 356, - /* 230 */ 358, 330, 360, 356, 358, 331, 360, 332, 362, 356, - /* 240 */ 358, 333, 451, 451, 451, 451, 361, 362, 356, 358, - /* 250 */ 334, 362, 356, 358, 335, 362, 356, 358, 336, 451, - /* 260 */ 451, 451, 337, 451, 451, 451, 338, 339, 340, 360, - /* 270 */ 341, 360, 342, 343, 344, 345, 346, 347, 348, 349, - /* 280 */ 350, 451, 451, 451, 351, 451, 451, 451, 352, 451, - /* 290 */ 451, 451, 353, 451, 363, 364, 451, 451, 451, 354, - /* 300 */ 316, 451, 451, 313, + /* 0 */ 466, 466, 466, 316, 466, 466, 387, 466, 317, 466, + /* 10 */ 318, 466, 381, 466, 466, 383, 466, 436, 466, 438, + /* 20 */ 441, 466, 440, 466, 439, 466, 466, 444, 437, 466, + /* 30 */ 466, 442, 443, 452, 453, 466, 466, 445, 466, 448, + /* 40 */ 466, 449, 466, 450, 466, 451, 454, 455, 456, 457, + /* 50 */ 458, 447, 446, 382, 466, 466, 466, 411, 324, 406, + /* 60 */ 407, 408, 409, 410, 466, 412, 466, 419, 466, 420, + /* 70 */ 466, 421, 466, 466, 422, 466, 423, 466, 424, 466, + /* 80 */ 425, 466, 426, 466, 427, 466, 428, 466, 429, 466, + /* 90 */ 430, 466, 466, 466, 431, 466, 466, 432, 466, 433, + /* 100 */ 466, 466, 466, 434, 466, 466, 435, 466, 466, 466, + /* 110 */ 466, 413, 466, 414, 466, 466, 415, 466, 459, 460, + /* 120 */ 466, 466, 416, 466, 465, 463, 464, 461, 462, 466, + /* 130 */ 466, 466, 395, 466, 398, 466, 402, 466, 403, 466, + /* 140 */ 404, 466, 405, 466, 396, 399, 401, 466, 400, 466, + /* 150 */ 466, 397, 466, 388, 466, 394, 390, 441, 466, 440, + /* 160 */ 466, 391, 392, 393, 389, 466, 466, 466, 384, 386, + /* 170 */ 385, 466, 466, 466, 418, 319, 466, 378, 466, 466, + /* 180 */ 380, 417, 379, 466, 418, 320, 466, 466, 321, 466, + /* 190 */ 375, 466, 466, 377, 376, 466, 466, 466, 466, 466, + /* 200 */ 322, 466, 325, 466, 334, 327, 466, 328, 466, 329, + /* 210 */ 466, 330, 466, 331, 332, 333, 335, 370, 366, 368, + /* 220 */ 336, 367, 365, 466, 466, 369, 370, 366, 368, 337, + /* 230 */ 370, 366, 368, 338, 370, 366, 368, 339, 370, 366, + /* 240 */ 368, 340, 370, 366, 368, 341, 370, 342, 372, 366, + /* 250 */ 368, 343, 466, 466, 466, 466, 371, 372, 366, 368, + /* 260 */ 344, 372, 366, 368, 345, 372, 366, 368, 346, 466, + /* 270 */ 466, 466, 347, 466, 466, 466, 348, 349, 350, 370, + /* 280 */ 351, 370, 352, 353, 354, 355, 356, 357, 358, 359, + /* 290 */ 360, 466, 466, 466, 361, 466, 466, 466, 362, 466, + /* 300 */ 466, 466, 363, 466, 373, 374, 466, 466, 466, 364, + /* 310 */ 326, 466, 466, 323, }; #define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) @@ -775,20 +793,20 @@ static const char *const yyTokenName[] = { "MEDIUMTEXT", "LONGTEXT", "BLOB", "TINYBLOB", "MEDIUMBLOB", "LONGBLOB", "BINARY", "VARBINARY", "ENUM", "UNSIGNED", "ZEROFILL", "TO", - "ON", "DOT", "INNER", "JOIN", + "DOT", "ON", "INNER", "JOIN", "OUTER", "LEFT", "RIGHT", "NOT_EQUAL", - "UNEQUAL", "LESSER_EQUAL", "DNUM", "ASC", - "DESC", "error", "terminal_statement", "statement", - "selectstatement", "optionalinsertfieldlist", "insertgrouplist", "setlist", - "optionalwhereclause", "togrouplist", "fielddescriptorlist", "fieldlist", - "tableexpr", "optionalquerymodifiers", "fielddescriptor", "fielddescriptortype", - "optionalfielddescriptormodifierlist", "literal", "optionalprecision", "optionalunsigned", - "optionalzerofill", "optionalfloatprecision", "intnum", "literallist", - "togroup", "setexpr", "expr", "insertgroup", - "exprlist", "labellist", "field", "joinclause", - "cond", "tablename", "whereclause", "limitclause", - "havingclause", "groupclause", "orderclause", "grouplist", - "orderlist", "dblnum", "orderelement", + "UNEQUAL", "LESSER_EQUAL", "COLON", "DNUM", + "ASC", "DESC", "error", "terminal_statement", + "statement", "selectstatement", "optionalinsertfieldlist", "insertgrouplist", + "setlist", "optionalwhereclause", "togrouplist", "fielddescriptorlist", + "fieldlist", "tableexpr", "optionalquerymodifiers", "fielddescriptor", + "fielddescriptortype", "optionalfielddescriptormodifierlist", "literal", "optionalprecision", + "optionalunsigned", "optionalzerofill", "optionalfloatprecision", "intnum", + "literallist", "togroup", "setexpr", "expr", + "insertgroup", "exprlist", "labellist", "field", + "joinclause", "cond", "tablename", "whereclause", + "limitclause", "havingclause", "groupclause", "orderclause", + "grouplist", "orderlist", "dblnum", "orderelement", }; #endif /* NDEBUG */ @@ -873,76 +891,81 @@ static const char *const yyRuleName[] = { /* 74 */ "fieldlist ::= fieldlist COMMA field", /* 75 */ "fieldlist ::= field", /* 76 */ "field ::= expr", - /* 77 */ "field ::= field AS LABEL", - /* 78 */ "tableexpr ::= LPAREN tableexpr RPAREN", - /* 79 */ "tableexpr ::= LPAREN selectstatement RPAREN", - /* 80 */ "tableexpr ::= tableexpr joinclause tableexpr ON cond", - /* 81 */ "tableexpr ::= tableexpr AS LABEL", - /* 82 */ "tableexpr ::= tablename", - /* 83 */ "tablename ::= LABEL DOT LABEL", - /* 84 */ "tablename ::= LABEL", - /* 85 */ "joinclause ::= INNER JOIN", - /* 86 */ "joinclause ::= OUTER JOIN", - /* 87 */ "joinclause ::= LEFT JOIN", - /* 88 */ "joinclause ::= RIGHT JOIN", - /* 89 */ "optionalquerymodifiers ::= optionalquerymodifiers whereclause", - /* 90 */ "optionalquerymodifiers ::= optionalquerymodifiers limitclause", - /* 91 */ "optionalquerymodifiers ::= optionalquerymodifiers havingclause", - /* 92 */ "optionalquerymodifiers ::= optionalquerymodifiers groupclause", - /* 93 */ "optionalquerymodifiers ::= optionalquerymodifiers orderclause", - /* 94 */ "optionalquerymodifiers ::=", - /* 95 */ "whereclause ::= WHERE cond", - /* 96 */ "limitclause ::= LIMIT intnum COMMA intnum", - /* 97 */ "havingclause ::= HAVING cond", - /* 98 */ "groupclause ::= GROUP BY grouplist", - /* 99 */ "orderclause ::= ORDER BY orderlist", - /* 100 */ "optionalwhereclause ::= whereclause", - /* 101 */ "optionalwhereclause ::=", - /* 102 */ "cond ::= cond AND cond", - /* 103 */ "cond ::= cond OR cond", - /* 104 */ "cond ::= cond XOR cond", - /* 105 */ "cond ::= expr EQUALS expr", - /* 106 */ "cond ::= expr NOT_EQUAL expr", - /* 107 */ "cond ::= expr UNEQUAL expr", - /* 108 */ "cond ::= expr LESSER expr", - /* 109 */ "cond ::= expr GREATER expr", - /* 110 */ "cond ::= expr LESSER_EQUAL expr", - /* 111 */ "cond ::= expr GREATER_EQUAL expr", - /* 112 */ "cond ::= expr LIKE expr", - /* 113 */ "cond ::= expr RLIKE expr", - /* 114 */ "cond ::= expr BETWEEN expr AND expr", - /* 115 */ "cond ::= expr NOT LIKE expr", - /* 116 */ "cond ::= expr NOT RLIKE expr", - /* 117 */ "cond ::= expr NOT BETWEEN expr AND expr", - /* 118 */ "cond ::= LPAREN cond RPAREN", - /* 119 */ "exprlist ::= exprlist COMMA expr", - /* 120 */ "exprlist ::= expr", - /* 121 */ "expr ::= literal", - /* 122 */ "expr ::= LABEL DOT LABEL DOT LABEL", - /* 123 */ "expr ::= LABEL DOT LABEL", - /* 124 */ "expr ::= LABEL", - /* 125 */ "expr ::= LABEL LPAREN exprlist RPAREN", - /* 126 */ "expr ::= LPAREN expr RPAREN", - /* 127 */ "expr ::= expr PLUS expr", - /* 128 */ "expr ::= expr MINUS expr", - /* 129 */ "expr ::= expr MUL expr", - /* 130 */ "expr ::= expr DIV expr", - /* 131 */ "expr ::= expr MOD expr", - /* 132 */ "expr ::= DISTINCT expr", - /* 133 */ "intnum ::= LNUM", - /* 134 */ "intnum ::= HNUM", - /* 135 */ "dblnum ::= DNUM", - /* 136 */ "literal ::= STRING", - /* 137 */ "literal ::= intnum", - /* 138 */ "literal ::= dblnum", - /* 139 */ "literal ::= NULL", - /* 140 */ "grouplist ::= grouplist COMMA expr", - /* 141 */ "grouplist ::= expr", - /* 142 */ "orderlist ::= orderlist COMMA orderelement", - /* 143 */ "orderlist ::= orderelement", - /* 144 */ "orderelement ::= expr ASC", - /* 145 */ "orderelement ::= expr DESC", - /* 146 */ "orderelement ::= expr", + /* 77 */ "field ::= LABEL DOT LABEL DOT MUL", + /* 78 */ "field ::= LABEL DOT MUL", + /* 79 */ "field ::= MUL", + /* 80 */ "field ::= field AS LABEL", + /* 81 */ "tableexpr ::= LPAREN tableexpr RPAREN", + /* 82 */ "tableexpr ::= LPAREN selectstatement RPAREN", + /* 83 */ "tableexpr ::= tableexpr joinclause tableexpr ON cond", + /* 84 */ "tableexpr ::= tableexpr AS LABEL", + /* 85 */ "tableexpr ::= tablename", + /* 86 */ "tablename ::= LABEL DOT LABEL", + /* 87 */ "tablename ::= LABEL", + /* 88 */ "joinclause ::= INNER JOIN", + /* 89 */ "joinclause ::= OUTER JOIN", + /* 90 */ "joinclause ::= LEFT JOIN", + /* 91 */ "joinclause ::= RIGHT JOIN", + /* 92 */ "optionalquerymodifiers ::= optionalquerymodifiers whereclause", + /* 93 */ "optionalquerymodifiers ::= optionalquerymodifiers limitclause", + /* 94 */ "optionalquerymodifiers ::= optionalquerymodifiers havingclause", + /* 95 */ "optionalquerymodifiers ::= optionalquerymodifiers groupclause", + /* 96 */ "optionalquerymodifiers ::= optionalquerymodifiers orderclause", + /* 97 */ "optionalquerymodifiers ::=", + /* 98 */ "whereclause ::= WHERE cond", + /* 99 */ "limitclause ::= LIMIT intnum COMMA intnum", + /* 100 */ "havingclause ::= HAVING cond", + /* 101 */ "groupclause ::= GROUP BY grouplist", + /* 102 */ "orderclause ::= ORDER BY orderlist", + /* 103 */ "optionalwhereclause ::= whereclause", + /* 104 */ "optionalwhereclause ::=", + /* 105 */ "cond ::= cond AND cond", + /* 106 */ "cond ::= cond OR cond", + /* 107 */ "cond ::= cond XOR cond", + /* 108 */ "cond ::= expr EQUALS expr", + /* 109 */ "cond ::= expr NOT_EQUAL expr", + /* 110 */ "cond ::= expr UNEQUAL expr", + /* 111 */ "cond ::= expr LESSER expr", + /* 112 */ "cond ::= expr GREATER expr", + /* 113 */ "cond ::= expr LESSER_EQUAL expr", + /* 114 */ "cond ::= expr GREATER_EQUAL expr", + /* 115 */ "cond ::= expr LIKE expr", + /* 116 */ "cond ::= expr RLIKE expr", + /* 117 */ "cond ::= expr BETWEEN expr AND expr", + /* 118 */ "cond ::= expr NOT LIKE expr", + /* 119 */ "cond ::= expr NOT RLIKE expr", + /* 120 */ "cond ::= expr NOT BETWEEN expr AND expr", + /* 121 */ "cond ::= LPAREN cond RPAREN", + /* 122 */ "exprlist ::= exprlist COMMA expr", + /* 123 */ "exprlist ::= expr", + /* 124 */ "expr ::= literal", + /* 125 */ "expr ::= LABEL DOT LABEL DOT LABEL", + /* 126 */ "expr ::= LABEL DOT LABEL", + /* 127 */ "expr ::= LABEL", + /* 128 */ "expr ::= COLON LABEL", + /* 129 */ "expr ::= COLON intnum", + /* 130 */ "expr ::= LABEL LPAREN exprlist RPAREN", + /* 131 */ "expr ::= LPAREN expr RPAREN", + /* 132 */ "expr ::= expr PLUS expr", + /* 133 */ "expr ::= expr MINUS expr", + /* 134 */ "expr ::= expr MUL expr", + /* 135 */ "expr ::= expr DIV expr", + /* 136 */ "expr ::= expr MOD expr", + /* 137 */ "expr ::= DISTINCT expr", + /* 138 */ "intnum ::= LNUM", + /* 139 */ "intnum ::= HNUM", + /* 140 */ "dblnum ::= DNUM", + /* 141 */ "literal ::= STRING", + /* 142 */ "literal ::= intnum", + /* 143 */ "literal ::= dblnum", + /* 144 */ "literal ::= NULL", + /* 145 */ "grouplist ::= grouplist COMMA expr", + /* 146 */ "grouplist ::= expr", + /* 147 */ "orderlist ::= orderlist COMMA orderelement", + /* 148 */ "orderlist ::= orderelement", + /* 149 */ "orderelement ::= expr ASC", + /* 150 */ "orderelement ::= expr DESC", + /* 151 */ "orderelement ::= expr", }; #endif /* NDEBUG */ @@ -1096,15 +1119,15 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 94: case 95: case 96: -#line 357 "pdo_user_sql_parser.lemon" + case 97: +#line 368 "pdo_user_sql_parser.lemon" { if ((yypminor->yy0).freeme) { efree((yypminor->yy0).token); } } -#line 1107 "pdo_user_sql_parser.c" +#line 1131 "pdo_user_sql_parser.c" break; - case 99: case 100: case 101: case 102: @@ -1125,7 +1148,7 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 117: case 118: case 119: - case 122: + case 120: case 123: case 124: case 125: @@ -1142,15 +1165,16 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 136: case 137: case 138: -#line 366 "pdo_user_sql_parser.lemon" -{ zval_ptr_dtor(&(yypminor->yy92)); } -#line 1149 "pdo_user_sql_parser.c" + case 139: +#line 377 "pdo_user_sql_parser.lemon" +{ zval_ptr_dtor(&(yypminor->yy8)); } +#line 1173 "pdo_user_sql_parser.c" break; - case 120: case 121: -#line 452 "pdo_user_sql_parser.lemon" -{ zval_ptr_dtor(&(yypminor->yy204)[0]); zval_ptr_dtor(&(yypminor->yy204)[1]); efree((yypminor->yy204)); } -#line 1155 "pdo_user_sql_parser.c" + case 122: +#line 463 "pdo_user_sql_parser.lemon" +{ zval_ptr_dtor(&(yypminor->yy142)[0]); zval_ptr_dtor(&(yypminor->yy142)[1]); efree((yypminor->yy142)); } +#line 1179 "pdo_user_sql_parser.c" break; default: break; /* If no destructor action specified: do nothing */ } @@ -1326,153 +1350,158 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { - { 98, 2 }, - { 98, 1 }, + { 99, 2 }, { 99, 1 }, - { 99, 5 }, - { 99, 6 }, - { 99, 5 }, - { 99, 3 }, - { 99, 3 }, - { 99, 6 }, - { 99, 3 }, + { 100, 1 }, { 100, 5 }, - { 106, 3 }, - { 106, 1 }, - { 110, 3 }, - { 112, 3 }, - { 112, 3 }, - { 112, 3 }, - { 112, 3 }, - { 112, 2 }, - { 112, 2 }, - { 112, 0 }, - { 111, 1 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 2 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 1 }, - { 111, 1 }, - { 111, 2 }, - { 111, 2 }, - { 111, 1 }, - { 111, 1 }, - { 111, 1 }, - { 111, 1 }, - { 111, 1 }, - { 111, 1 }, - { 111, 1 }, - { 111, 1 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 115, 1 }, - { 115, 0 }, - { 116, 1 }, - { 116, 0 }, - { 114, 3 }, - { 114, 0 }, - { 117, 5 }, - { 117, 0 }, - { 119, 3 }, - { 119, 1 }, - { 105, 3 }, - { 105, 1 }, - { 120, 3 }, - { 103, 3 }, - { 103, 1 }, - { 121, 3 }, - { 102, 3 }, - { 102, 1 }, - { 123, 3 }, - { 125, 3 }, - { 125, 1 }, - { 101, 3 }, - { 101, 0 }, + { 100, 6 }, + { 100, 5 }, + { 100, 3 }, + { 100, 3 }, + { 100, 6 }, + { 100, 3 }, + { 101, 5 }, { 107, 3 }, { 107, 1 }, - { 126, 1 }, + { 111, 3 }, + { 113, 3 }, + { 113, 3 }, + { 113, 3 }, + { 113, 3 }, + { 113, 2 }, + { 113, 2 }, + { 113, 0 }, + { 112, 1 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 2 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 1 }, + { 112, 1 }, + { 112, 2 }, + { 112, 2 }, + { 112, 1 }, + { 112, 1 }, + { 112, 1 }, + { 112, 1 }, + { 112, 1 }, + { 112, 1 }, + { 112, 1 }, + { 112, 1 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 112, 4 }, + { 116, 1 }, + { 116, 0 }, + { 117, 1 }, + { 117, 0 }, + { 115, 3 }, + { 115, 0 }, + { 118, 5 }, + { 118, 0 }, + { 120, 3 }, + { 120, 1 }, + { 106, 3 }, + { 106, 1 }, + { 121, 3 }, + { 104, 3 }, + { 104, 1 }, + { 122, 3 }, + { 103, 3 }, + { 103, 1 }, + { 124, 3 }, { 126, 3 }, - { 108, 3 }, - { 108, 3 }, - { 108, 5 }, + { 126, 1 }, + { 102, 3 }, + { 102, 0 }, { 108, 3 }, { 108, 1 }, - { 129, 3 }, - { 129, 1 }, - { 127, 2 }, - { 127, 2 }, - { 127, 2 }, - { 127, 2 }, - { 109, 2 }, - { 109, 2 }, - { 109, 2 }, - { 109, 2 }, - { 109, 2 }, - { 109, 0 }, - { 130, 2 }, - { 131, 4 }, - { 132, 2 }, - { 133, 3 }, + { 127, 1 }, + { 127, 5 }, + { 127, 3 }, + { 127, 1 }, + { 127, 3 }, + { 109, 3 }, + { 109, 3 }, + { 109, 5 }, + { 109, 3 }, + { 109, 1 }, + { 130, 3 }, + { 130, 1 }, + { 128, 2 }, + { 128, 2 }, + { 128, 2 }, + { 128, 2 }, + { 110, 2 }, + { 110, 2 }, + { 110, 2 }, + { 110, 2 }, + { 110, 2 }, + { 110, 0 }, + { 131, 2 }, + { 132, 4 }, + { 133, 2 }, { 134, 3 }, - { 104, 1 }, - { 104, 0 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 5 }, - { 128, 4 }, - { 128, 4 }, - { 128, 6 }, - { 128, 3 }, - { 124, 3 }, - { 124, 1 }, - { 122, 1 }, - { 122, 5 }, - { 122, 3 }, - { 122, 1 }, - { 122, 4 }, - { 122, 3 }, - { 122, 3 }, - { 122, 3 }, - { 122, 3 }, - { 122, 3 }, - { 122, 3 }, - { 122, 2 }, - { 118, 1 }, - { 118, 1 }, - { 137, 1 }, - { 113, 1 }, - { 113, 1 }, - { 113, 1 }, - { 113, 1 }, { 135, 3 }, - { 135, 1 }, + { 105, 1 }, + { 105, 0 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 3 }, + { 129, 5 }, + { 129, 4 }, + { 129, 4 }, + { 129, 6 }, + { 129, 3 }, + { 125, 3 }, + { 125, 1 }, + { 123, 1 }, + { 123, 5 }, + { 123, 3 }, + { 123, 1 }, + { 123, 2 }, + { 123, 2 }, + { 123, 4 }, + { 123, 3 }, + { 123, 3 }, + { 123, 3 }, + { 123, 3 }, + { 123, 3 }, + { 123, 3 }, + { 123, 2 }, + { 119, 1 }, + { 119, 1 }, + { 138, 1 }, + { 114, 1 }, + { 114, 1 }, + { 114, 1 }, + { 114, 1 }, { 136, 3 }, { 136, 1 }, - { 138, 2 }, - { 138, 2 }, - { 138, 1 }, + { 137, 3 }, + { 137, 1 }, + { 139, 2 }, + { 139, 2 }, + { 139, 1 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -1522,748 +1551,763 @@ static void yy_reduce( ** break; */ case 0: -#line 363 "pdo_user_sql_parser.lemon" -{ pusp_do_terminal_statement(&return_value, yymsp[-1].minor.yy92, 1); yy_destructor(36,&yymsp[0].minor); +#line 374 "pdo_user_sql_parser.lemon" +{ pusp_do_terminal_statement(&return_value, yymsp[-1].minor.yy8, 1); yy_destructor(36,&yymsp[0].minor); } -#line 1530 "pdo_user_sql_parser.c" +#line 1559 "pdo_user_sql_parser.c" break; case 1: -#line 364 "pdo_user_sql_parser.lemon" -{ pusp_do_terminal_statement(&return_value, yymsp[0].minor.yy92, 0); } -#line 1535 "pdo_user_sql_parser.c" +#line 375 "pdo_user_sql_parser.lemon" +{ pusp_do_terminal_statement(&return_value, yymsp[0].minor.yy8, 0); } +#line 1564 "pdo_user_sql_parser.c" break; case 2: case 76: - case 82: - case 100: - case 121: - case 137: - case 138: -#line 367 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = yymsp[0].minor.yy92; } -#line 1546 "pdo_user_sql_parser.c" + case 85: + case 103: + case 124: + case 142: + case 143: +#line 378 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = yymsp[0].minor.yy8; } +#line 1575 "pdo_user_sql_parser.c" break; case 3: -#line 368 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_insert_select_statement(pusp_zvalize_token(&yymsp[-2].minor.yy0), yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(9,&yymsp[-4].minor); +#line 379 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_insert_select_statement(pusp_zvalize_token(&yymsp[-2].minor.yy0), yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(9,&yymsp[-4].minor); yy_destructor(10,&yymsp[-3].minor); } -#line 1553 "pdo_user_sql_parser.c" +#line 1582 "pdo_user_sql_parser.c" break; case 4: -#line 369 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_insert_statement(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(9,&yymsp[-5].minor); +#line 380 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_insert_statement(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(9,&yymsp[-5].minor); yy_destructor(10,&yymsp[-4].minor); yy_destructor(37,&yymsp[-1].minor); } -#line 1561 "pdo_user_sql_parser.c" +#line 1590 "pdo_user_sql_parser.c" break; case 5: -#line 370 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_update_statement(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(38,&yymsp[-4].minor); +#line 381 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_update_statement(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(38,&yymsp[-4].minor); yy_destructor(39,&yymsp[-2].minor); } -#line 1568 "pdo_user_sql_parser.c" +#line 1597 "pdo_user_sql_parser.c" break; case 6: -#line 371 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_delete_statement(pusp_zvalize_token(&yymsp[-1].minor.yy0), yymsp[0].minor.yy92); yy_destructor(40,&yymsp[-2].minor); +#line 382 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_delete_statement(pusp_zvalize_token(&yymsp[-1].minor.yy0), yymsp[0].minor.yy8); yy_destructor(40,&yymsp[-2].minor); } -#line 1574 "pdo_user_sql_parser.c" +#line 1603 "pdo_user_sql_parser.c" break; case 7: -#line 372 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_rename_statement(yymsp[0].minor.yy92); yy_destructor(41,&yymsp[-2].minor); +#line 383 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_rename_statement(yymsp[0].minor.yy8); yy_destructor(41,&yymsp[-2].minor); yy_destructor(42,&yymsp[-1].minor); } -#line 1581 "pdo_user_sql_parser.c" +#line 1610 "pdo_user_sql_parser.c" break; case 8: -#line 373 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_create_statement(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-1].minor.yy92); yy_destructor(43,&yymsp[-5].minor); +#line 384 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_create_statement(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-1].minor.yy8); yy_destructor(43,&yymsp[-5].minor); yy_destructor(42,&yymsp[-4].minor); yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1590 "pdo_user_sql_parser.c" +#line 1619 "pdo_user_sql_parser.c" break; case 9: -#line 374 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_drop_statement(pusp_zvalize_token(&yymsp[0].minor.yy0)); yy_destructor(44,&yymsp[-2].minor); +#line 385 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_drop_statement(pusp_zvalize_token(&yymsp[0].minor.yy0)); yy_destructor(44,&yymsp[-2].minor); yy_destructor(42,&yymsp[-1].minor); } -#line 1597 "pdo_user_sql_parser.c" +#line 1626 "pdo_user_sql_parser.c" break; case 10: -#line 377 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_select_statement(yymsp[-3].minor.yy92,yymsp[-1].minor.yy92,yymsp[0].minor.yy92); yy_destructor(8,&yymsp[-4].minor); +#line 388 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_select_statement(yymsp[-3].minor.yy8,yymsp[-1].minor.yy8,yymsp[0].minor.yy8); yy_destructor(8,&yymsp[-4].minor); yy_destructor(45,&yymsp[-2].minor); } -#line 1604 "pdo_user_sql_parser.c" +#line 1633 "pdo_user_sql_parser.c" break; case 11: case 59: case 67: case 74: - case 119: - case 140: - case 142: -#line 380 "pdo_user_sql_parser.lemon" -{ add_next_index_zval(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(11,&yymsp[-1].minor); + case 122: + case 145: + case 147: +#line 391 "pdo_user_sql_parser.lemon" +{ add_next_index_zval(yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(11,&yymsp[-1].minor); } -#line 1616 "pdo_user_sql_parser.c" +#line 1645 "pdo_user_sql_parser.c" break; case 12: case 60: case 68: case 75: - case 120: - case 141: - case 143: -#line 381 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); add_next_index_zval(yygotominor.yy92, yymsp[0].minor.yy92); } -#line 1627 "pdo_user_sql_parser.c" + case 123: + case 146: + case 148: +#line 392 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); add_next_index_zval(yygotominor.yy8, yymsp[0].minor.yy8); } +#line 1656 "pdo_user_sql_parser.c" break; case 13: -#line 384 "pdo_user_sql_parser.lemon" -{ add_assoc_zval(yymsp[-1].minor.yy92, "name", pusp_zvalize_token(&yymsp[-2].minor.yy0)); add_assoc_zval(yymsp[-1].minor.yy92, "flags", yymsp[0].minor.yy92); yygotominor.yy92 = yymsp[-1].minor.yy92; } -#line 1632 "pdo_user_sql_parser.c" +#line 395 "pdo_user_sql_parser.lemon" +{ add_assoc_zval(yymsp[-1].minor.yy8, "name", pusp_zvalize_token(&yymsp[-2].minor.yy0)); add_assoc_zval(yymsp[-1].minor.yy8, "flags", yymsp[0].minor.yy8); yygotominor.yy8 = yymsp[-1].minor.yy8; } +#line 1661 "pdo_user_sql_parser.c" break; case 14: -#line 387 "pdo_user_sql_parser.lemon" -{ add_next_index_string(yymsp[-2].minor.yy92, "not null", 1); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(1,&yymsp[-1].minor); +#line 398 "pdo_user_sql_parser.lemon" +{ add_next_index_string(yymsp[-2].minor.yy8, "not null", 1); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(1,&yymsp[-1].minor); yy_destructor(46,&yymsp[0].minor); } -#line 1639 "pdo_user_sql_parser.c" +#line 1668 "pdo_user_sql_parser.c" break; case 15: -#line 388 "pdo_user_sql_parser.lemon" -{ add_assoc_zval(yymsp[-2].minor.yy92, "default", yymsp[0].minor.yy92); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(47,&yymsp[-1].minor); +#line 399 "pdo_user_sql_parser.lemon" +{ add_assoc_zval(yymsp[-2].minor.yy8, "default", yymsp[0].minor.yy8); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(47,&yymsp[-1].minor); } -#line 1645 "pdo_user_sql_parser.c" +#line 1674 "pdo_user_sql_parser.c" break; case 16: -#line 389 "pdo_user_sql_parser.lemon" -{ add_next_index_string(yymsp[-2].minor.yy92, "primary key", 1); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(48,&yymsp[-1].minor); +#line 400 "pdo_user_sql_parser.lemon" +{ add_next_index_string(yymsp[-2].minor.yy8, "primary key", 1); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(48,&yymsp[-1].minor); yy_destructor(49,&yymsp[0].minor); } -#line 1652 "pdo_user_sql_parser.c" +#line 1681 "pdo_user_sql_parser.c" break; case 17: -#line 390 "pdo_user_sql_parser.lemon" -{ add_next_index_string(yymsp[-2].minor.yy92, "unique key", 1); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(50,&yymsp[-1].minor); +#line 401 "pdo_user_sql_parser.lemon" +{ add_next_index_string(yymsp[-2].minor.yy8, "unique key", 1); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(50,&yymsp[-1].minor); yy_destructor(49,&yymsp[0].minor); } -#line 1659 "pdo_user_sql_parser.c" - break; - case 18: -#line 391 "pdo_user_sql_parser.lemon" -{ add_next_index_string(yymsp[-1].minor.yy92, "key", 1); yygotominor.yy92 = yymsp[-1].minor.yy92; yy_destructor(49,&yymsp[0].minor); -} -#line 1665 "pdo_user_sql_parser.c" - break; - case 19: -#line 392 "pdo_user_sql_parser.lemon" -{ add_next_index_string(yymsp[-1].minor.yy92, "auto_increment", 1); yygotominor.yy92 = yymsp[-1].minor.yy92; yy_destructor(51,&yymsp[0].minor); -} -#line 1671 "pdo_user_sql_parser.c" - break; - case 20: -#line 393 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); } -#line 1676 "pdo_user_sql_parser.c" - break; - case 21: -#line 396 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("bit", NULL, NULL); yy_destructor(52,&yymsp[0].minor); -} -#line 1682 "pdo_user_sql_parser.c" - break; - case 22: -#line 397 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("int", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(53,&yymsp[-3].minor); -} #line 1688 "pdo_user_sql_parser.c" break; - case 23: -#line 398 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("integer", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(54,&yymsp[-3].minor); + case 18: +#line 402 "pdo_user_sql_parser.lemon" +{ add_next_index_string(yymsp[-1].minor.yy8, "key", 1); yygotominor.yy8 = yymsp[-1].minor.yy8; yy_destructor(49,&yymsp[0].minor); } #line 1694 "pdo_user_sql_parser.c" break; - case 24: -#line 399 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("tinyint", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(55,&yymsp[-3].minor); + case 19: +#line 403 "pdo_user_sql_parser.lemon" +{ add_next_index_string(yymsp[-1].minor.yy8, "auto_increment", 1); yygotominor.yy8 = yymsp[-1].minor.yy8; yy_destructor(51,&yymsp[0].minor); } #line 1700 "pdo_user_sql_parser.c" break; - case 25: -#line 400 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("smallint", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(56,&yymsp[-3].minor); + case 20: +#line 404 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); } +#line 1705 "pdo_user_sql_parser.c" + break; + case 21: +#line 407 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("bit", NULL, NULL); yy_destructor(52,&yymsp[0].minor); } -#line 1706 "pdo_user_sql_parser.c" +#line 1711 "pdo_user_sql_parser.c" + break; + case 22: +#line 408 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("int", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(53,&yymsp[-3].minor); +} +#line 1717 "pdo_user_sql_parser.c" + break; + case 23: +#line 409 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("integer", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(54,&yymsp[-3].minor); +} +#line 1723 "pdo_user_sql_parser.c" + break; + case 24: +#line 410 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("tinyint", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(55,&yymsp[-3].minor); +} +#line 1729 "pdo_user_sql_parser.c" + break; + case 25: +#line 411 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("smallint", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(56,&yymsp[-3].minor); +} +#line 1735 "pdo_user_sql_parser.c" break; case 26: -#line 401 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("mediumint", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(57,&yymsp[-3].minor); +#line 412 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("mediumint", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(57,&yymsp[-3].minor); } -#line 1712 "pdo_user_sql_parser.c" +#line 1741 "pdo_user_sql_parser.c" break; case 27: -#line 402 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("bigint", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(58,&yymsp[-3].minor); +#line 413 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("bigint", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(58,&yymsp[-3].minor); } -#line 1718 "pdo_user_sql_parser.c" +#line 1747 "pdo_user_sql_parser.c" break; case 28: -#line 403 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("year", "precision", yymsp[0].minor.yy92); yy_destructor(59,&yymsp[-1].minor); +#line 414 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("year", "precision", yymsp[0].minor.yy8); yy_destructor(59,&yymsp[-1].minor); } -#line 1724 "pdo_user_sql_parser.c" +#line 1753 "pdo_user_sql_parser.c" break; case 29: -#line 404 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("float", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(60,&yymsp[-3].minor); +#line 415 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("float", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(60,&yymsp[-3].minor); } -#line 1730 "pdo_user_sql_parser.c" +#line 1759 "pdo_user_sql_parser.c" break; case 30: -#line 405 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("real", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(61,&yymsp[-3].minor); +#line 416 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("real", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(61,&yymsp[-3].minor); } -#line 1736 "pdo_user_sql_parser.c" +#line 1765 "pdo_user_sql_parser.c" break; case 31: -#line 406 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("decimal", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(62,&yymsp[-3].minor); +#line 417 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("decimal", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(62,&yymsp[-3].minor); } -#line 1742 "pdo_user_sql_parser.c" +#line 1771 "pdo_user_sql_parser.c" break; case 32: -#line 407 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_num("double", yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); yy_destructor(63,&yymsp[-3].minor); +#line 418 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_num("double", yymsp[-2].minor.yy8, yymsp[-1].minor.yy8, yymsp[0].minor.yy8); yy_destructor(63,&yymsp[-3].minor); } -#line 1748 "pdo_user_sql_parser.c" +#line 1777 "pdo_user_sql_parser.c" break; case 33: -#line 408 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("char", "length", yymsp[-1].minor.yy92); yy_destructor(64,&yymsp[-3].minor); +#line 419 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("char", "length", yymsp[-1].minor.yy8); yy_destructor(64,&yymsp[-3].minor); yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1756 "pdo_user_sql_parser.c" +#line 1785 "pdo_user_sql_parser.c" break; case 34: -#line 409 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("varchar", "length", yymsp[-1].minor.yy92); yy_destructor(65,&yymsp[-3].minor); +#line 420 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("varchar", "length", yymsp[-1].minor.yy8); yy_destructor(65,&yymsp[-3].minor); yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1764 "pdo_user_sql_parser.c" +#line 1793 "pdo_user_sql_parser.c" break; case 35: -#line 410 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("text", "date", NULL); yy_destructor(66,&yymsp[0].minor); +#line 421 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("text", "date", NULL); yy_destructor(66,&yymsp[0].minor); } -#line 1770 "pdo_user_sql_parser.c" +#line 1799 "pdo_user_sql_parser.c" break; case 36: -#line 411 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("text", "time", NULL); yy_destructor(67,&yymsp[0].minor); +#line 422 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("text", "time", NULL); yy_destructor(67,&yymsp[0].minor); } -#line 1776 "pdo_user_sql_parser.c" +#line 1805 "pdo_user_sql_parser.c" break; case 37: -#line 412 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("datetime", "precision", yymsp[0].minor.yy92); yy_destructor(68,&yymsp[-1].minor); +#line 423 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("datetime", "precision", yymsp[0].minor.yy8); yy_destructor(68,&yymsp[-1].minor); } -#line 1782 "pdo_user_sql_parser.c" +#line 1811 "pdo_user_sql_parser.c" break; case 38: -#line 413 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("timestamp", "precision", yymsp[0].minor.yy92); yy_destructor(69,&yymsp[-1].minor); +#line 424 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("timestamp", "precision", yymsp[0].minor.yy8); yy_destructor(69,&yymsp[-1].minor); } -#line 1788 "pdo_user_sql_parser.c" +#line 1817 "pdo_user_sql_parser.c" break; case 39: -#line 414 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("text", "precision", NULL); yy_destructor(70,&yymsp[0].minor); +#line 425 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("text", "precision", NULL); yy_destructor(70,&yymsp[0].minor); } -#line 1794 "pdo_user_sql_parser.c" +#line 1823 "pdo_user_sql_parser.c" break; case 40: -#line 415 "pdo_user_sql_parser.lemon" -{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "tiny", 1); yygotominor.yy92 = pusp_do_declare_type("text", "precision", p); yy_destructor(71,&yymsp[0].minor); +#line 426 "pdo_user_sql_parser.lemon" +{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "tiny", 1); yygotominor.yy8 = pusp_do_declare_type("text", "precision", p); yy_destructor(71,&yymsp[0].minor); } -#line 1800 "pdo_user_sql_parser.c" +#line 1829 "pdo_user_sql_parser.c" break; case 41: -#line 416 "pdo_user_sql_parser.lemon" -{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "medium", 1); yygotominor.yy92 = pusp_do_declare_type("text", "precision", p); yy_destructor(72,&yymsp[0].minor); +#line 427 "pdo_user_sql_parser.lemon" +{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "medium", 1); yygotominor.yy8 = pusp_do_declare_type("text", "precision", p); yy_destructor(72,&yymsp[0].minor); } -#line 1806 "pdo_user_sql_parser.c" +#line 1835 "pdo_user_sql_parser.c" break; case 42: -#line 417 "pdo_user_sql_parser.lemon" -{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "long", 1); yygotominor.yy92 = pusp_do_declare_type("text", "precision", p); yy_destructor(73,&yymsp[0].minor); +#line 428 "pdo_user_sql_parser.lemon" +{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "long", 1); yygotominor.yy8 = pusp_do_declare_type("text", "precision", p); yy_destructor(73,&yymsp[0].minor); } -#line 1812 "pdo_user_sql_parser.c" +#line 1841 "pdo_user_sql_parser.c" break; case 43: -#line 418 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("blob", "precision", NULL); yy_destructor(74,&yymsp[0].minor); +#line 429 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("blob", "precision", NULL); yy_destructor(74,&yymsp[0].minor); } -#line 1818 "pdo_user_sql_parser.c" +#line 1847 "pdo_user_sql_parser.c" break; case 44: -#line 419 "pdo_user_sql_parser.lemon" -{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "tiny", 1); yygotominor.yy92 = pusp_do_declare_type("blob", "precision", p); yy_destructor(75,&yymsp[0].minor); +#line 430 "pdo_user_sql_parser.lemon" +{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "tiny", 1); yygotominor.yy8 = pusp_do_declare_type("blob", "precision", p); yy_destructor(75,&yymsp[0].minor); } -#line 1824 "pdo_user_sql_parser.c" +#line 1853 "pdo_user_sql_parser.c" break; case 45: -#line 420 "pdo_user_sql_parser.lemon" -{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "medium", 1); yygotominor.yy92 = pusp_do_declare_type("blob", "precision", p); yy_destructor(76,&yymsp[0].minor); +#line 431 "pdo_user_sql_parser.lemon" +{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "medium", 1); yygotominor.yy8 = pusp_do_declare_type("blob", "precision", p); yy_destructor(76,&yymsp[0].minor); } -#line 1830 "pdo_user_sql_parser.c" +#line 1859 "pdo_user_sql_parser.c" break; case 46: -#line 421 "pdo_user_sql_parser.lemon" -{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "long", 1); yygotominor.yy92 = pusp_do_declare_type("blob", "precision", p); yy_destructor(77,&yymsp[0].minor); +#line 432 "pdo_user_sql_parser.lemon" +{ zval *p; MAKE_STD_ZVAL(p); ZVAL_STRING(p, "long", 1); yygotominor.yy8 = pusp_do_declare_type("blob", "precision", p); yy_destructor(77,&yymsp[0].minor); } -#line 1836 "pdo_user_sql_parser.c" +#line 1865 "pdo_user_sql_parser.c" break; case 47: -#line 422 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("binary", "length", yymsp[-1].minor.yy92); yy_destructor(78,&yymsp[-3].minor); +#line 433 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("binary", "length", yymsp[-1].minor.yy8); yy_destructor(78,&yymsp[-3].minor); yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1844 "pdo_user_sql_parser.c" +#line 1873 "pdo_user_sql_parser.c" break; case 48: -#line 423 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("varbinary", "length", yymsp[-1].minor.yy92); yy_destructor(79,&yymsp[-3].minor); +#line 434 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("varbinary", "length", yymsp[-1].minor.yy8); yy_destructor(79,&yymsp[-3].minor); yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1852 "pdo_user_sql_parser.c" +#line 1881 "pdo_user_sql_parser.c" break; case 49: -#line 424 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("set", "flags", yymsp[-1].minor.yy92); yy_destructor(39,&yymsp[-3].minor); +#line 435 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("set", "flags", yymsp[-1].minor.yy8); yy_destructor(39,&yymsp[-3].minor); yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1860 "pdo_user_sql_parser.c" +#line 1889 "pdo_user_sql_parser.c" break; case 50: -#line 425 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_declare_type("enum", "values", yymsp[-1].minor.yy92); yy_destructor(80,&yymsp[-3].minor); +#line 436 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_declare_type("enum", "values", yymsp[-1].minor.yy8); yy_destructor(80,&yymsp[-3].minor); yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1868 "pdo_user_sql_parser.c" +#line 1897 "pdo_user_sql_parser.c" break; case 51: -#line 428 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); ZVAL_TRUE(yygotominor.yy92); yy_destructor(81,&yymsp[0].minor); +#line 439 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); ZVAL_TRUE(yygotominor.yy8); yy_destructor(81,&yymsp[0].minor); } -#line 1874 "pdo_user_sql_parser.c" +#line 1903 "pdo_user_sql_parser.c" break; case 52: case 54: -#line 429 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); ZVAL_FALSE(yygotominor.yy92); } -#line 1880 "pdo_user_sql_parser.c" +#line 440 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); ZVAL_FALSE(yygotominor.yy8); } +#line 1909 "pdo_user_sql_parser.c" break; case 53: -#line 432 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); ZVAL_TRUE(yygotominor.yy92); yy_destructor(82,&yymsp[0].minor); +#line 443 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); ZVAL_TRUE(yygotominor.yy8); yy_destructor(82,&yymsp[0].minor); } -#line 1886 "pdo_user_sql_parser.c" +#line 1915 "pdo_user_sql_parser.c" break; case 55: case 69: case 72: - case 78: - case 79: - case 118: - case 126: -#line 436 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = yymsp[-1].minor.yy92; yy_destructor(31,&yymsp[-2].minor); + case 81: + case 82: + case 121: + case 131: +#line 447 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = yymsp[-1].minor.yy8; yy_destructor(31,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1899 "pdo_user_sql_parser.c" +#line 1928 "pdo_user_sql_parser.c" break; case 56: case 58: case 73: - case 94: - case 101: -#line 437 "pdo_user_sql_parser.lemon" -{ TSRMLS_FETCH(); yygotominor.yy92 = EG(uninitialized_zval_ptr); } -#line 1908 "pdo_user_sql_parser.c" + case 97: + case 104: +#line 448 "pdo_user_sql_parser.lemon" +{ TSRMLS_FETCH(); yygotominor.yy8 = EG(uninitialized_zval_ptr); } +#line 1937 "pdo_user_sql_parser.c" break; case 57: -#line 440 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); add_assoc_zval(yygotominor.yy92, "length", yymsp[-3].minor.yy92); add_assoc_zval(yygotominor.yy92, "decimals", yymsp[-1].minor.yy92); yy_destructor(31,&yymsp[-4].minor); +#line 451 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); add_assoc_zval(yygotominor.yy8, "length", yymsp[-3].minor.yy8); add_assoc_zval(yygotominor.yy8, "decimals", yymsp[-1].minor.yy8); yy_destructor(31,&yymsp[-4].minor); yy_destructor(11,&yymsp[-2].minor); yy_destructor(28,&yymsp[0].minor); } -#line 1916 "pdo_user_sql_parser.c" +#line 1945 "pdo_user_sql_parser.c" break; case 61: -#line 448 "pdo_user_sql_parser.lemon" -{ pusp_do_push_labeled_zval(yymsp[-2].minor.yy92, yymsp[0].minor.yy204); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(11,&yymsp[-1].minor); +#line 459 "pdo_user_sql_parser.lemon" +{ pusp_do_push_labeled_zval(yymsp[-2].minor.yy8, yymsp[0].minor.yy142); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(11,&yymsp[-1].minor); } -#line 1922 "pdo_user_sql_parser.c" +#line 1951 "pdo_user_sql_parser.c" break; case 62: case 65: -#line 449 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); pusp_do_push_labeled_zval(yygotominor.yy92, yymsp[0].minor.yy204); } -#line 1928 "pdo_user_sql_parser.c" - break; - case 63: -#line 453 "pdo_user_sql_parser.lemon" -{ zval **tmp = safe_emalloc(2, sizeof(zval*), 0); tmp[0] = pusp_zvalize_token(&yymsp[-2].minor.yy0); tmp[1] = pusp_zvalize_token(&yymsp[0].minor.yy0); yygotominor.yy204 = tmp; yy_destructor(83,&yymsp[-1].minor); -} -#line 1934 "pdo_user_sql_parser.c" - break; - case 64: -#line 456 "pdo_user_sql_parser.lemon" -{ pusp_do_push_labeled_zval(yymsp[-2].minor.yy92, (zval**)yymsp[0].minor.yy204); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(11,&yymsp[-1].minor); -} -#line 1940 "pdo_user_sql_parser.c" - break; - case 66: -#line 461 "pdo_user_sql_parser.lemon" -{ zval **tmp = safe_emalloc(2, sizeof(zval*), 0); tmp[0] = pusp_zvalize_token(&yymsp[-2].minor.yy0); tmp[1] = yymsp[0].minor.yy92; yygotominor.yy204 = tmp; yy_destructor(19,&yymsp[-1].minor); -} -#line 1946 "pdo_user_sql_parser.c" - break; - case 70: -#line 471 "pdo_user_sql_parser.lemon" -{ add_next_index_zval(yymsp[-2].minor.yy92, pusp_zvalize_token(&yymsp[0].minor.yy0)); yygotominor.yy92 = yymsp[-2].minor.yy92; yy_destructor(11,&yymsp[-1].minor); -} -#line 1952 "pdo_user_sql_parser.c" - break; - case 71: -#line 472 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); add_next_index_zval(yygotominor.yy92, pusp_zvalize_token(&yymsp[0].minor.yy0)); } +#line 460 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); pusp_do_push_labeled_zval(yygotominor.yy8, yymsp[0].minor.yy142); } #line 1957 "pdo_user_sql_parser.c" break; - case 77: -#line 484 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); add_assoc_stringl(yygotominor.yy92, "type", "alias", sizeof("alias") - 1, 1); add_assoc_zval(yygotominor.yy92, "field", yymsp[-2].minor.yy92); add_assoc_zval(yygotominor.yy92, "as", pusp_zvalize_token(&yymsp[0].minor.yy0)); yy_destructor(15,&yymsp[-1].minor); + case 63: +#line 464 "pdo_user_sql_parser.lemon" +{ zval **tmp = safe_emalloc(2, sizeof(zval*), 0); tmp[0] = pusp_zvalize_token(&yymsp[-2].minor.yy0); tmp[1] = pusp_zvalize_token(&yymsp[0].minor.yy0); yygotominor.yy142 = tmp; yy_destructor(83,&yymsp[-1].minor); } #line 1963 "pdo_user_sql_parser.c" break; - case 80: -#line 489 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_join_expression(yymsp[-4].minor.yy92, yymsp[-3].minor.yy92, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(84,&yymsp[-1].minor); + case 64: +#line 467 "pdo_user_sql_parser.lemon" +{ pusp_do_push_labeled_zval(yymsp[-2].minor.yy8, (zval**)yymsp[0].minor.yy142); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(11,&yymsp[-1].minor); } #line 1969 "pdo_user_sql_parser.c" break; - case 81: -#line 490 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); add_assoc_stringl(yygotominor.yy92, "type", "alias", sizeof("alias") - 1, 1); add_assoc_zval(yygotominor.yy92, "table", yymsp[-2].minor.yy92); add_assoc_zval(yygotominor.yy92, "as", pusp_zvalize_token(&yymsp[0].minor.yy0)); yy_destructor(15,&yymsp[-1].minor); + case 66: +#line 472 "pdo_user_sql_parser.lemon" +{ zval **tmp = safe_emalloc(2, sizeof(zval*), 0); tmp[0] = pusp_zvalize_token(&yymsp[-2].minor.yy0); tmp[1] = yymsp[0].minor.yy8; yygotominor.yy142 = tmp; yy_destructor(19,&yymsp[-1].minor); } #line 1975 "pdo_user_sql_parser.c" break; - case 83: - case 123: -#line 494 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_field(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); yy_destructor(85,&yymsp[-1].minor); + case 70: +#line 482 "pdo_user_sql_parser.lemon" +{ add_next_index_zval(yymsp[-2].minor.yy8, pusp_zvalize_token(&yymsp[0].minor.yy0)); yygotominor.yy8 = yymsp[-2].minor.yy8; yy_destructor(11,&yymsp[-1].minor); } -#line 1982 "pdo_user_sql_parser.c" +#line 1981 "pdo_user_sql_parser.c" break; - case 84: - case 124: + case 71: +#line 483 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); add_next_index_zval(yygotominor.yy8, pusp_zvalize_token(&yymsp[0].minor.yy0)); } +#line 1986 "pdo_user_sql_parser.c" + break; + case 77: + case 125: #line 495 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_field(NULL, NULL, &yymsp[0].minor.yy0); } -#line 1988 "pdo_user_sql_parser.c" - break; - case 85: -#line 506 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_static_string("inner"); yy_destructor(86,&yymsp[-1].minor); - yy_destructor(87,&yymsp[0].minor); +{ yygotominor.yy8 = pusp_do_field(&yymsp[-4].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); yy_destructor(84,&yymsp[-3].minor); + yy_destructor(84,&yymsp[-1].minor); } -#line 1995 "pdo_user_sql_parser.c" +#line 1994 "pdo_user_sql_parser.c" break; + case 78: case 86: -#line 507 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_static_string("outer"); yy_destructor(88,&yymsp[-1].minor); - yy_destructor(87,&yymsp[0].minor); + case 126: +#line 496 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_field(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); yy_destructor(84,&yymsp[-1].minor); } #line 2002 "pdo_user_sql_parser.c" break; + case 79: case 87: -#line 508 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_static_string("left"); yy_destructor(89,&yymsp[-1].minor); - yy_destructor(87,&yymsp[0].minor); -} + case 127: +#line 497 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_field(NULL, NULL, &yymsp[0].minor.yy0); } #line 2009 "pdo_user_sql_parser.c" break; - case 88: -#line 509 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_static_string("right"); yy_destructor(90,&yymsp[-1].minor); - yy_destructor(87,&yymsp[0].minor); + case 80: +#line 498 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); add_assoc_stringl(yygotominor.yy8, "type", "alias", sizeof("alias") - 1, 1); add_assoc_zval(yygotominor.yy8, "field", yymsp[-2].minor.yy8); add_assoc_zval(yygotominor.yy8, "as", pusp_zvalize_token(&yymsp[0].minor.yy0)); yy_destructor(15,&yymsp[-1].minor); } -#line 2016 "pdo_user_sql_parser.c" +#line 2015 "pdo_user_sql_parser.c" break; - case 89: -#line 512 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_add_query_modifier(yymsp[-1].minor.yy92, "where", yymsp[0].minor.yy92); } + case 83: +#line 503 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_join_expression(yymsp[-4].minor.yy8, yymsp[-3].minor.yy8, yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(85,&yymsp[-1].minor); +} #line 2021 "pdo_user_sql_parser.c" break; - case 90: -#line 513 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_add_query_modifier(yymsp[-1].minor.yy92, "limit", yymsp[0].minor.yy92); } -#line 2026 "pdo_user_sql_parser.c" + case 84: +#line 504 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); add_assoc_stringl(yygotominor.yy8, "type", "alias", sizeof("alias") - 1, 1); add_assoc_zval(yygotominor.yy8, "table", yymsp[-2].minor.yy8); add_assoc_zval(yygotominor.yy8, "as", pusp_zvalize_token(&yymsp[0].minor.yy0)); yy_destructor(15,&yymsp[-1].minor); +} +#line 2027 "pdo_user_sql_parser.c" break; - case 91: -#line 514 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_add_query_modifier(yymsp[-1].minor.yy92, "having", yymsp[0].minor.yy92); } -#line 2031 "pdo_user_sql_parser.c" + case 88: +#line 520 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_zvalize_static_string("inner"); yy_destructor(86,&yymsp[-1].minor); + yy_destructor(87,&yymsp[0].minor); +} +#line 2034 "pdo_user_sql_parser.c" break; - case 92: -#line 515 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_add_query_modifier(yymsp[-1].minor.yy92, "group-by", yymsp[0].minor.yy92); } -#line 2036 "pdo_user_sql_parser.c" - break; - case 93: -#line 516 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_add_query_modifier(yymsp[-1].minor.yy92, "order-by", yymsp[0].minor.yy92); } + case 89: +#line 521 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_zvalize_static_string("outer"); yy_destructor(88,&yymsp[-1].minor); + yy_destructor(87,&yymsp[0].minor); +} #line 2041 "pdo_user_sql_parser.c" break; - case 95: -#line 520 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = yymsp[0].minor.yy92; yy_destructor(6,&yymsp[-1].minor); + case 90: +#line 522 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_zvalize_static_string("left"); yy_destructor(89,&yymsp[-1].minor); + yy_destructor(87,&yymsp[0].minor); } -#line 2047 "pdo_user_sql_parser.c" +#line 2048 "pdo_user_sql_parser.c" break; - case 96: + case 91: #line 523 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); add_assoc_zval(yygotominor.yy92, "from", yymsp[-2].minor.yy92); add_assoc_zval(yygotominor.yy92, "to", yymsp[0].minor.yy92); yy_destructor(5,&yymsp[-3].minor); - yy_destructor(11,&yymsp[-1].minor); +{ yygotominor.yy8 = pusp_zvalize_static_string("right"); yy_destructor(90,&yymsp[-1].minor); + yy_destructor(87,&yymsp[0].minor); } -#line 2054 "pdo_user_sql_parser.c" +#line 2055 "pdo_user_sql_parser.c" break; - case 97: + case 92: #line 526 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = yymsp[0].minor.yy92; yy_destructor(7,&yymsp[-1].minor); -} +{ yygotominor.yy8 = pusp_do_add_query_modifier(yymsp[-1].minor.yy8, "where", yymsp[0].minor.yy8); } #line 2060 "pdo_user_sql_parser.c" break; - case 98: + case 93: +#line 527 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_add_query_modifier(yymsp[-1].minor.yy8, "limit", yymsp[0].minor.yy8); } +#line 2065 "pdo_user_sql_parser.c" + break; + case 94: +#line 528 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_add_query_modifier(yymsp[-1].minor.yy8, "having", yymsp[0].minor.yy8); } +#line 2070 "pdo_user_sql_parser.c" + break; + case 95: #line 529 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = yymsp[0].minor.yy92; yy_destructor(2,&yymsp[-2].minor); - yy_destructor(4,&yymsp[-1].minor); -} -#line 2067 "pdo_user_sql_parser.c" +{ yygotominor.yy8 = pusp_do_add_query_modifier(yymsp[-1].minor.yy8, "group-by", yymsp[0].minor.yy8); } +#line 2075 "pdo_user_sql_parser.c" break; - case 99: -#line 532 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = yymsp[0].minor.yy92; yy_destructor(3,&yymsp[-2].minor); - yy_destructor(4,&yymsp[-1].minor); -} -#line 2074 "pdo_user_sql_parser.c" - break; - case 102: -#line 539 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "and", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(12,&yymsp[-1].minor); -} + case 96: +#line 530 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_add_query_modifier(yymsp[-1].minor.yy8, "order-by", yymsp[0].minor.yy8); } #line 2080 "pdo_user_sql_parser.c" break; - case 103: -#line 540 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "or", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(13,&yymsp[-1].minor); + case 98: +#line 534 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = yymsp[0].minor.yy8; yy_destructor(6,&yymsp[-1].minor); } #line 2086 "pdo_user_sql_parser.c" break; - case 104: -#line 541 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "xor", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(14,&yymsp[-1].minor); + case 99: +#line 537 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); add_assoc_zval(yygotominor.yy8, "from", yymsp[-2].minor.yy8); add_assoc_zval(yygotominor.yy8, "to", yymsp[0].minor.yy8); yy_destructor(5,&yymsp[-3].minor); + yy_destructor(11,&yymsp[-1].minor); } -#line 2092 "pdo_user_sql_parser.c" +#line 2093 "pdo_user_sql_parser.c" + break; + case 100: +#line 540 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = yymsp[0].minor.yy8; yy_destructor(7,&yymsp[-1].minor); +} +#line 2099 "pdo_user_sql_parser.c" + break; + case 101: +#line 543 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = yymsp[0].minor.yy8; yy_destructor(2,&yymsp[-2].minor); + yy_destructor(4,&yymsp[-1].minor); +} +#line 2106 "pdo_user_sql_parser.c" + break; + case 102: +#line 546 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = yymsp[0].minor.yy8; yy_destructor(3,&yymsp[-2].minor); + yy_destructor(4,&yymsp[-1].minor); +} +#line 2113 "pdo_user_sql_parser.c" break; case 105: -#line 543 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "=", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(19,&yymsp[-1].minor); +#line 553 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "and", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(12,&yymsp[-1].minor); } -#line 2098 "pdo_user_sql_parser.c" +#line 2119 "pdo_user_sql_parser.c" break; case 106: -#line 544 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "!=", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(91,&yymsp[-1].minor); +#line 554 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "or", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(13,&yymsp[-1].minor); } -#line 2104 "pdo_user_sql_parser.c" +#line 2125 "pdo_user_sql_parser.c" break; case 107: -#line 545 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "<>", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(92,&yymsp[-1].minor); +#line 555 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "xor", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(14,&yymsp[-1].minor); } -#line 2110 "pdo_user_sql_parser.c" +#line 2131 "pdo_user_sql_parser.c" break; case 108: -#line 546 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "<", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(20,&yymsp[-1].minor); +#line 557 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "=", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(19,&yymsp[-1].minor); } -#line 2116 "pdo_user_sql_parser.c" +#line 2137 "pdo_user_sql_parser.c" break; case 109: -#line 547 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, ">", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(21,&yymsp[-1].minor); +#line 558 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "!=", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(91,&yymsp[-1].minor); } -#line 2122 "pdo_user_sql_parser.c" +#line 2143 "pdo_user_sql_parser.c" break; case 110: -#line 548 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "<=", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(93,&yymsp[-1].minor); +#line 559 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "<>", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(92,&yymsp[-1].minor); } -#line 2128 "pdo_user_sql_parser.c" +#line 2149 "pdo_user_sql_parser.c" break; case 111: -#line 549 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, ">=", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(23,&yymsp[-1].minor); +#line 560 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "<", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(20,&yymsp[-1].minor); } -#line 2134 "pdo_user_sql_parser.c" +#line 2155 "pdo_user_sql_parser.c" break; case 112: -#line 550 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "like", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(17,&yymsp[-1].minor); +#line 561 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, ">", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(21,&yymsp[-1].minor); } -#line 2140 "pdo_user_sql_parser.c" +#line 2161 "pdo_user_sql_parser.c" break; case 113: -#line 551 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "rlike", yymsp[-2].minor.yy92, yymsp[0].minor.yy92); yy_destructor(18,&yymsp[-1].minor); -} -#line 2146 "pdo_user_sql_parser.c" - break; - case 114: -#line 552 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "between", yymsp[-4].minor.yy92, yymsp[-2].minor.yy92); add_assoc_zval(yygotominor.yy92, "op3", yymsp[0].minor.yy92); yy_destructor(16,&yymsp[-3].minor); - yy_destructor(12,&yymsp[-1].minor); -} -#line 2153 "pdo_user_sql_parser.c" - break; - case 115: -#line 553 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "not like", yymsp[-3].minor.yy92, yymsp[0].minor.yy92); yy_destructor(1,&yymsp[-2].minor); - yy_destructor(17,&yymsp[-1].minor); -} -#line 2160 "pdo_user_sql_parser.c" - break; - case 116: -#line 554 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "not rlike", yymsp[-3].minor.yy92, yymsp[0].minor.yy92); yy_destructor(1,&yymsp[-2].minor); - yy_destructor(18,&yymsp[-1].minor); +#line 562 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "<=", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(93,&yymsp[-1].minor); } #line 2167 "pdo_user_sql_parser.c" break; + case 114: +#line 563 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, ">=", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(23,&yymsp[-1].minor); +} +#line 2173 "pdo_user_sql_parser.c" + break; + case 115: +#line 564 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "like", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(17,&yymsp[-1].minor); +} +#line 2179 "pdo_user_sql_parser.c" + break; + case 116: +#line 565 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "rlike", yymsp[-2].minor.yy8, yymsp[0].minor.yy8); yy_destructor(18,&yymsp[-1].minor); +} +#line 2185 "pdo_user_sql_parser.c" + break; case 117: -#line 555 "pdo_user_sql_parser.lemon" -{ DO_COND(yygotominor.yy92, "not between", yymsp[-5].minor.yy92, yymsp[-2].minor.yy92); add_assoc_zval(yygotominor.yy92, "op3", yymsp[0].minor.yy92); yy_destructor(1,&yymsp[-4].minor); +#line 566 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "between", yymsp[-4].minor.yy8, yymsp[-2].minor.yy8); add_assoc_zval(yygotominor.yy8, "op3", yymsp[0].minor.yy8); yy_destructor(16,&yymsp[-3].minor); + yy_destructor(12,&yymsp[-1].minor); +} +#line 2192 "pdo_user_sql_parser.c" + break; + case 118: +#line 567 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "not like", yymsp[-3].minor.yy8, yymsp[0].minor.yy8); yy_destructor(1,&yymsp[-2].minor); + yy_destructor(17,&yymsp[-1].minor); +} +#line 2199 "pdo_user_sql_parser.c" + break; + case 119: +#line 568 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "not rlike", yymsp[-3].minor.yy8, yymsp[0].minor.yy8); yy_destructor(1,&yymsp[-2].minor); + yy_destructor(18,&yymsp[-1].minor); +} +#line 2206 "pdo_user_sql_parser.c" + break; + case 120: +#line 569 "pdo_user_sql_parser.lemon" +{ DO_COND(yygotominor.yy8, "not between", yymsp[-5].minor.yy8, yymsp[-2].minor.yy8); add_assoc_zval(yygotominor.yy8, "op3", yymsp[0].minor.yy8); yy_destructor(1,&yymsp[-4].minor); yy_destructor(16,&yymsp[-3].minor); yy_destructor(12,&yymsp[-1].minor); } -#line 2175 "pdo_user_sql_parser.c" - break; - case 122: -#line 564 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_field(&yymsp[-4].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); yy_destructor(85,&yymsp[-3].minor); - yy_destructor(85,&yymsp[-1].minor); -} -#line 2182 "pdo_user_sql_parser.c" - break; - case 125: -#line 567 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_do_function(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-1].minor.yy92); yy_destructor(31,&yymsp[-2].minor); - yy_destructor(28,&yymsp[0].minor); -} -#line 2189 "pdo_user_sql_parser.c" - break; - case 127: -#line 569 "pdo_user_sql_parser.lemon" -{ DO_MATHOP(yygotominor.yy92,yymsp[-2].minor.yy92,"+",yymsp[0].minor.yy92); yy_destructor(29,&yymsp[-1].minor); -} -#line 2195 "pdo_user_sql_parser.c" +#line 2214 "pdo_user_sql_parser.c" break; case 128: -#line 570 "pdo_user_sql_parser.lemon" -{ DO_MATHOP(yygotominor.yy92,yymsp[-2].minor.yy92,"-",yymsp[0].minor.yy92); yy_destructor(30,&yymsp[-1].minor); +#line 581 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_placeholder(pusp_zvalize_token(&yymsp[0].minor.yy0)); yy_destructor(94,&yymsp[-1].minor); } -#line 2201 "pdo_user_sql_parser.c" +#line 2220 "pdo_user_sql_parser.c" break; case 129: -#line 571 "pdo_user_sql_parser.lemon" -{ DO_MATHOP(yygotominor.yy92,yymsp[-2].minor.yy92,"*",yymsp[0].minor.yy92); yy_destructor(25,&yymsp[-1].minor); +#line 582 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_placeholder(yymsp[0].minor.yy8); yy_destructor(94,&yymsp[-1].minor); } -#line 2207 "pdo_user_sql_parser.c" +#line 2226 "pdo_user_sql_parser.c" break; case 130: -#line 572 "pdo_user_sql_parser.lemon" -{ DO_MATHOP(yygotominor.yy92,yymsp[-2].minor.yy92,"/",yymsp[0].minor.yy92); yy_destructor(26,&yymsp[-1].minor); +#line 583 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_do_function(pusp_zvalize_token(&yymsp[-3].minor.yy0), yymsp[-1].minor.yy8); yy_destructor(31,&yymsp[-2].minor); + yy_destructor(28,&yymsp[0].minor); } -#line 2213 "pdo_user_sql_parser.c" - break; - case 131: -#line 573 "pdo_user_sql_parser.lemon" -{ DO_MATHOP(yygotominor.yy92,yymsp[-2].minor.yy92,"%",yymsp[0].minor.yy92); yy_destructor(27,&yymsp[-1].minor); -} -#line 2219 "pdo_user_sql_parser.c" +#line 2233 "pdo_user_sql_parser.c" break; case 132: -#line 574 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); array_init(yygotominor.yy92); add_assoc_stringl(yygotominor.yy92, "type", "distinct", sizeof("distinct") - 1, 1); add_assoc_zval(yygotominor.yy92, "distinct", yymsp[0].minor.yy92); yy_destructor(24,&yymsp[-1].minor); +#line 585 "pdo_user_sql_parser.lemon" +{ DO_MATHOP(yygotominor.yy8,yymsp[-2].minor.yy8,"+",yymsp[0].minor.yy8); yy_destructor(29,&yymsp[-1].minor); } -#line 2225 "pdo_user_sql_parser.c" +#line 2239 "pdo_user_sql_parser.c" break; case 133: -#line 577 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_lnum(&yymsp[0].minor.yy0); } -#line 2230 "pdo_user_sql_parser.c" - break; - case 134: -#line 578 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_hnum(&yymsp[0].minor.yy0); } -#line 2235 "pdo_user_sql_parser.c" - break; - case 135: -#line 581 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_dnum(&yymsp[0].minor.yy0); } -#line 2240 "pdo_user_sql_parser.c" - break; - case 136: -#line 584 "pdo_user_sql_parser.lemon" -{ yygotominor.yy92 = pusp_zvalize_token(&yymsp[0].minor.yy0); } +#line 586 "pdo_user_sql_parser.lemon" +{ DO_MATHOP(yygotominor.yy8,yymsp[-2].minor.yy8,"-",yymsp[0].minor.yy8); yy_destructor(30,&yymsp[-1].minor); +} #line 2245 "pdo_user_sql_parser.c" break; - case 139: + case 134: #line 587 "pdo_user_sql_parser.lemon" -{ TSRMLS_FETCH(); yygotominor.yy92 = EG(uninitialized_zval_ptr); yy_destructor(46,&yymsp[0].minor); +{ DO_MATHOP(yygotominor.yy8,yymsp[-2].minor.yy8,"*",yymsp[0].minor.yy8); yy_destructor(25,&yymsp[-1].minor); } #line 2251 "pdo_user_sql_parser.c" break; - case 144: -#line 598 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); add_assoc_stringl(yygotominor.yy92, "direction", "asc", sizeof("asc") - 1, 1); add_assoc_zval(yygotominor.yy92, "by", yymsp[-1].minor.yy92); yy_destructor(95,&yymsp[0].minor); + case 135: +#line 588 "pdo_user_sql_parser.lemon" +{ DO_MATHOP(yygotominor.yy8,yymsp[-2].minor.yy8,"/",yymsp[0].minor.yy8); yy_destructor(26,&yymsp[-1].minor); } #line 2257 "pdo_user_sql_parser.c" break; - case 145: -#line 599 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); add_assoc_stringl(yygotominor.yy92, "direction", "desc", sizeof("desc") - 1, 1); add_assoc_zval(yygotominor.yy92, "by", yymsp[-1].minor.yy92); yy_destructor(96,&yymsp[0].minor); + case 136: +#line 589 "pdo_user_sql_parser.lemon" +{ DO_MATHOP(yygotominor.yy8,yymsp[-2].minor.yy8,"%",yymsp[0].minor.yy8); yy_destructor(27,&yymsp[-1].minor); } #line 2263 "pdo_user_sql_parser.c" break; - case 146: + case 137: +#line 590 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); array_init(yygotominor.yy8); add_assoc_stringl(yygotominor.yy8, "type", "distinct", sizeof("distinct") - 1, 1); add_assoc_zval(yygotominor.yy8, "distinct", yymsp[0].minor.yy8); yy_destructor(24,&yymsp[-1].minor); +} +#line 2269 "pdo_user_sql_parser.c" + break; + case 138: +#line 593 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_zvalize_lnum(&yymsp[0].minor.yy0); } +#line 2274 "pdo_user_sql_parser.c" + break; + case 139: +#line 594 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_zvalize_hnum(&yymsp[0].minor.yy0); } +#line 2279 "pdo_user_sql_parser.c" + break; + case 140: +#line 597 "pdo_user_sql_parser.lemon" +{ yygotominor.yy8 = pusp_zvalize_dnum(&yymsp[0].minor.yy0); } +#line 2284 "pdo_user_sql_parser.c" + break; + case 141: #line 600 "pdo_user_sql_parser.lemon" -{ MAKE_STD_ZVAL(yygotominor.yy92); add_assoc_null(yygotominor.yy92, "direction"); add_assoc_zval(yygotominor.yy92, "by", yymsp[0].minor.yy92); } -#line 2268 "pdo_user_sql_parser.c" +{ yygotominor.yy8 = pusp_zvalize_token(&yymsp[0].minor.yy0); } +#line 2289 "pdo_user_sql_parser.c" + break; + case 144: +#line 603 "pdo_user_sql_parser.lemon" +{ TSRMLS_FETCH(); yygotominor.yy8 = EG(uninitialized_zval_ptr); yy_destructor(46,&yymsp[0].minor); +} +#line 2295 "pdo_user_sql_parser.c" + break; + case 149: +#line 614 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); add_assoc_stringl(yygotominor.yy8, "direction", "asc", sizeof("asc") - 1, 1); add_assoc_zval(yygotominor.yy8, "by", yymsp[-1].minor.yy8); yy_destructor(96,&yymsp[0].minor); +} +#line 2301 "pdo_user_sql_parser.c" + break; + case 150: +#line 615 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); add_assoc_stringl(yygotominor.yy8, "direction", "desc", sizeof("desc") - 1, 1); add_assoc_zval(yygotominor.yy8, "by", yymsp[-1].minor.yy8); yy_destructor(97,&yymsp[0].minor); +} +#line 2307 "pdo_user_sql_parser.c" + break; + case 151: +#line 616 "pdo_user_sql_parser.lemon" +{ MAKE_STD_ZVAL(yygotominor.yy8); add_assoc_null(yygotominor.yy8, "direction"); add_assoc_zval(yygotominor.yy8, "by", yymsp[0].minor.yy8); } +#line 2312 "pdo_user_sql_parser.c" break; }; yygoto = yyRuleInfo[yyruleno].lhs; @@ -2320,13 +2364,13 @@ static void yy_syntax_error( ){ php_pdo_user_sql_parserARG_FETCH; #define TOKEN (yyminor.yy0) -#line 351 "pdo_user_sql_parser.lemon" +#line 362 "pdo_user_sql_parser.lemon" if (Z_TYPE_P(return_value) == IS_NULL) { /* Only throw error if we don't already have a statement */ RETVAL_FALSE; } -#line 2332 "pdo_user_sql_parser.c" +#line 2376 "pdo_user_sql_parser.c" php_pdo_user_sql_parserARG_STORE; /* Suppress warning about unused %extra_argument variable */ } diff --git a/pdo_user_sql_parser.h b/pdo_user_sql_parser.h index 686f6c1..1fc21b2 100644 --- a/pdo_user_sql_parser.h +++ b/pdo_user_sql_parser.h @@ -81,8 +81,8 @@ #define PU_UNSIGNED 81 #define PU_ZEROFILL 82 #define PU_TO 83 -#define PU_ON 84 -#define PU_DOT 85 +#define PU_DOT 84 +#define PU_ON 85 #define PU_INNER 86 #define PU_JOIN 87 #define PU_OUTER 88 @@ -91,6 +91,7 @@ #define PU_NOT_EQUAL 91 #define PU_UNEQUAL 92 #define PU_LESSER_EQUAL 93 -#define PU_DNUM 94 -#define PU_ASC 95 -#define PU_DESC 96 +#define PU_COLON 94 +#define PU_DNUM 95 +#define PU_ASC 96 +#define PU_DESC 97 diff --git a/pdo_user_sql_parser.lemon b/pdo_user_sql_parser.lemon index 26c22a4..84ce3ef 100644 --- a/pdo_user_sql_parser.lemon +++ b/pdo_user_sql_parser.lemon @@ -213,6 +213,17 @@ static zval *pusp_do_field(php_pdo_user_sql_token *database, php_pdo_user_sql_to return ret; } +static zval *pusp_do_placeholder(zval *placeholder) +{ + zval *ret; + + MAKE_STD_ZVAL(ret); + array_init(ret); + add_assoc_zval(ret, "placeholder", placeholder); + + return ret; +} + /* ---------------- */ static inline zval *pusp_do_select_statement(zval *fieldlist, zval *tableexpr, zval *modifiers) @@ -481,6 +492,9 @@ fieldlist(R) ::= field(F). { MAKE_STD_ZVAL(R); array_init(R); add_next_index_zva %destructor field { zval_ptr_dtor(&$$); } field(R) ::= expr(E). { R = E; } +field(R) ::= LABEL(D) DOT LABEL(T) DOT MUL(F). { R = pusp_do_field(&D, &T, &F); } +field(R) ::= LABEL(T) DOT MUL(F). { R = pusp_do_field(NULL, &T, &F); } +field(R) ::= MUL(F). { R = pusp_do_field(NULL, NULL, &F); } field(R) ::= field(E) AS LABEL(A). { MAKE_STD_ZVAL(R); array_init(R); add_assoc_stringl(R, "type", "alias", sizeof("alias") - 1, 1); add_assoc_zval(R, "field", E); add_assoc_zval(R, "as", pusp_zvalize_token(&A)); } %destructor tableexpr { zval_ptr_dtor(&$$); } @@ -564,6 +578,8 @@ expr(R) ::= literal(L). { R = L; } expr(R) ::= LABEL(D) DOT LABEL(T) DOT LABEL(F). { R = pusp_do_field(&D, &T, &F); } expr(R) ::= LABEL(T) DOT LABEL(F). { R = pusp_do_field(NULL, &T, &F); } expr(R) ::= LABEL(F). { R = pusp_do_field(NULL, NULL, &F); } +expr(R) ::= COLON LABEL(L). { R = pusp_do_placeholder(pusp_zvalize_token(&L)); } +expr(R) ::= COLON intnum(I). { R = pusp_do_placeholder(I); } expr(R) ::= LABEL(F) LPAREN exprlist(A) RPAREN. { R = pusp_do_function(pusp_zvalize_token(&F), A); } expr(R) ::= LPAREN expr(E) RPAREN. { R = E; } expr(R) ::= expr(A) PLUS expr(B). { DO_MATHOP(R,A,"+",B); } diff --git a/pdo_user_sql_tokenizer.c b/pdo_user_sql_tokenizer.c index a05180d..5244b42 100644 --- a/pdo_user_sql_tokenizer.c +++ b/pdo_user_sql_tokenizer.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.10.2 on Wed May 10 14:14:05 2006 */ +/* Generated by re2c 0.10.2 on Sat Jun 10 16:26:33 2006 */ #line 1 "pdo_user_sql_tokenizer.re" #include "php.h" #include "php_pdo_user_sql.h" @@ -190,7 +190,7 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t if((YYLIMIT - YYCURSOR) < 15) YYFILL(15); yych = *YYCURSOR; switch(yych){ - case 0x00: goto yy70; + case 0x00: goto yy72; case 0x01: case 0x02: case 0x03: @@ -222,7 +222,6 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t case '#': case '$': case '&': - case ':': case '?': case '@': case '[': @@ -237,11 +236,11 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t case 0x09: case 0x0A: case 0x0D: - case ' ': goto yy62; + case ' ': goto yy64; case '!': goto yy30; - case '"': goto yy58; + case '"': goto yy60; case '%': goto yy42; - case '\'': goto yy60; + case '\'': goto yy62; case '(': goto yy44; case ')': goto yy46; case '*': goto yy38; @@ -250,7 +249,7 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t case '-': goto yy36; case '.': goto yy54; case '/': goto yy40; - case '0': goto yy64; + case '0': goto yy66; case '1': case '2': case '3': @@ -259,7 +258,8 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t case '6': case '7': case '8': - case '9': goto yy66; + case '9': goto yy68; + case ':': goto yy56; case ';': goto yy52; case '<': goto yy31; case '=': goto yy50; @@ -313,390 +313,390 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t case 'y': goto yy28; case 'Z': case 'z': goto yy26; - case '`': goto yy56; + case '`': goto yy58; case 's': goto yy5; - default: goto yy68; + default: goto yy70; } yy2: YYCURSOR = YYMARKER; switch(yyaccept) { case 0: goto yy37; - case 1: goto yy65; + case 1: goto yy67; } yy3: ++YYCURSOR; if((yych = *YYCURSOR) <= 'M') { - if(yych == 'E') goto yy482; - if(yych <= 'L') goto yy69; - goto yy483; + if(yych == 'E') goto yy484; + if(yych <= 'L') goto yy71; + goto yy485; } else { if(yych <= 'e') { - if(yych <= 'd') goto yy69; - goto yy482; + if(yych <= 'd') goto yy71; + goto yy484; } else { - if(yych == 'm') goto yy483; - goto yy69; + if(yych == 'm') goto yy485; + goto yy71; } } yy4: -#line 275 "pdo_user_sql_tokenizer.re" +#line 276 "pdo_user_sql_tokenizer.re" { RET(PU_LABEL); } #line 345 "pdo_user_sql_tokenizer.c" yy5: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 128) { - goto yy484; + goto yy486; } if(yych <= '^') { if(yych <= 'D') { - if(yych <= '/') goto yy63; - if(yych <= '9') goto yy68; - if(yych <= '@') goto yy63; - goto yy68; + if(yych <= '/') goto yy65; + if(yych <= '9') goto yy70; + if(yych <= '@') goto yy65; + goto yy70; } else { if(yych <= 'L') { - if(yych <= 'E') goto yy482; - goto yy68; + if(yych <= 'E') goto yy484; + goto yy70; } else { - if(yych <= 'M') goto yy483; - if(yych <= 'Z') goto yy68; - goto yy63; + if(yych <= 'M') goto yy485; + if(yych <= 'Z') goto yy70; + goto yy65; } } } else { if(yych <= 'e') { - if(yych == '`') goto yy63; - if(yych <= 'd') goto yy68; - goto yy482; + if(yych == '`') goto yy65; + if(yych <= 'd') goto yy70; + goto yy484; } else { if(yych <= 'm') { - if(yych <= 'l') goto yy68; - goto yy483; + if(yych <= 'l') goto yy70; + goto yy485; } else { - if(yych <= 'z') goto yy68; - if(yych <= 0x7F) goto yy63; - goto yy68; + if(yych <= 'z') goto yy70; + if(yych <= 0x7F) goto yy65; + goto yy70; } } } yy6: -#line 271 "pdo_user_sql_tokenizer.re" +#line 272 "pdo_user_sql_tokenizer.re" { RET(PU_WHITESPACE); } #line 386 "pdo_user_sql_tokenizer.c" yy7: yych = *++YYCURSOR; if(yych <= 'N') { - if(yych == 'D') goto yy453; - if(yych <= 'M') goto yy69; - goto yy454; + if(yych == 'D') goto yy455; + if(yych <= 'M') goto yy71; + goto yy456; } else { if(yych <= 'd') { - if(yych <= 'c') goto yy69; - goto yy453; + if(yych <= 'c') goto yy71; + goto yy455; } else { - if(yych == 'n') goto yy454; - goto yy69; + if(yych == 'n') goto yy456; + goto yy71; } } yy8: yych = *++YYCURSOR; if(yych <= 'P') { - if(yych == 'N') goto yy434; - if(yych <= 'O') goto yy69; - goto yy435; + if(yych == 'N') goto yy436; + if(yych <= 'O') goto yy71; + goto yy437; } else { if(yych <= 'n') { - if(yych <= 'm') goto yy69; - goto yy434; + if(yych <= 'm') goto yy71; + goto yy436; } else { - if(yych == 'p') goto yy435; - goto yy69; + if(yych == 'p') goto yy437; + goto yy71; } } yy9: yych = *++YYCURSOR; switch(yych){ case 'A': - case 'a': goto yy386; + case 'a': goto yy388; case 'E': - case 'e': goto yy387; + case 'e': goto yy389; case 'I': - case 'i': goto yy388; + case 'i': goto yy390; case 'O': - case 'o': goto yy389; + case 'o': goto yy391; case 'R': - case 'r': goto yy390; - default: goto yy69; + case 'r': goto yy392; + default: goto yy71; } yy10: yych = *++YYCURSOR; if(yych <= 'R') { if(yych <= 'N') { - if(yych == 'H') goto yy370; - goto yy69; + if(yych == 'H') goto yy372; + goto yy71; } else { - if(yych <= 'O') goto yy371; - if(yych <= 'Q') goto yy69; - goto yy372; + if(yych <= 'O') goto yy373; + if(yych <= 'Q') goto yy71; + goto yy374; } } else { if(yych <= 'n') { - if(yych == 'h') goto yy370; - goto yy69; + if(yych == 'h') goto yy372; + goto yy71; } else { - if(yych <= 'o') goto yy371; - if(yych == 'r') goto yy372; - goto yy69; + if(yych <= 'o') goto yy373; + if(yych == 'r') goto yy374; + goto yy71; } } yy11: yych = *++YYCURSOR; if(yych <= 'L') { if(yych <= 'H') { - if(yych == 'E') goto yy346; - goto yy69; + if(yych == 'E') goto yy348; + goto yy71; } else { - if(yych <= 'I') goto yy347; - if(yych <= 'K') goto yy69; - goto yy348; + if(yych <= 'I') goto yy349; + if(yych <= 'K') goto yy71; + goto yy350; } } else { if(yych <= 'h') { - if(yych == 'e') goto yy346; - goto yy69; + if(yych == 'e') goto yy348; + goto yy71; } else { - if(yych <= 'i') goto yy347; - if(yych == 'l') goto yy348; - goto yy69; + if(yych <= 'i') goto yy349; + if(yych == 'l') goto yy350; + goto yy71; } } yy12: yych = *++YYCURSOR; switch(yych){ case 'D': - case 'd': goto yy310; + case 'd': goto yy312; case 'F': - case 'f': goto yy311; + case 'f': goto yy313; case 'L': - case 'l': goto yy312; + case 'l': goto yy314; case 'N': - case 'n': goto yy313; + case 'n': goto yy315; case 'S': - case 's': goto yy314; + case 's': goto yy316; case 'U': - case 'u': goto yy316; - default: goto yy69; + case 'u': goto yy318; + default: goto yy71; } yy13: yych = *++YYCURSOR; - if(yych == 'R') goto yy301; - if(yych == 'r') goto yy301; - goto yy69; + if(yych == 'R') goto yy303; + if(yych == 'r') goto yy303; + goto yy71; yy14: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'E') { - if(yych == 'A') goto yy264; - if(yych <= 'D') goto yy69; - goto yy265; - } else { - if(yych == 'I') goto yy266; - if(yych <= 'N') goto yy69; + if(yych == 'A') goto yy266; + if(yych <= 'D') goto yy71; goto yy267; + } else { + if(yych == 'I') goto yy268; + if(yych <= 'N') goto yy71; + goto yy269; } } else { if(yych <= 'e') { - if(yych == 'a') goto yy264; - if(yych <= 'd') goto yy69; - goto yy265; + if(yych == 'a') goto yy266; + if(yych <= 'd') goto yy71; + goto yy267; } else { if(yych <= 'i') { - if(yych <= 'h') goto yy69; - goto yy266; + if(yych <= 'h') goto yy71; + goto yy268; } else { - if(yych == 'o') goto yy267; - goto yy69; + if(yych == 'o') goto yy269; + goto yy71; } } } yy15: yych = *++YYCURSOR; if(yych <= 'I') { - if(yych == 'A') goto yy241; - if(yych <= 'H') goto yy69; - goto yy242; + if(yych == 'A') goto yy243; + if(yych <= 'H') goto yy71; + goto yy244; } else { if(yych <= 'a') { - if(yych <= '`') goto yy69; - goto yy241; + if(yych <= '`') goto yy71; + goto yy243; } else { - if(yych == 'i') goto yy242; - goto yy69; + if(yych == 'i') goto yy244; + goto yy71; } } yy16: yych = *++YYCURSOR; - if(yych == 'E') goto yy238; - if(yych == 'e') goto yy238; - goto yy69; + if(yych == 'E') goto yy240; + if(yych == 'e') goto yy240; + goto yy71; yy17: yych = *++YYCURSOR; if(yych <= 'U') { - if(yych == 'O') goto yy231; - if(yych <= 'T') goto yy69; - goto yy232; + if(yych == 'O') goto yy233; + if(yych <= 'T') goto yy71; + goto yy234; } else { if(yych <= 'o') { - if(yych <= 'n') goto yy69; - goto yy231; + if(yych <= 'n') goto yy71; + goto yy233; } else { - if(yych == 'u') goto yy232; - goto yy69; + if(yych == 'u') goto yy234; + goto yy71; } } yy18: yych = *++YYCURSOR; if(yych <= 'R') { - if(yych == 'L') goto yy222; - if(yych <= 'Q') goto yy69; - goto yy223; + if(yych == 'L') goto yy224; + if(yych <= 'Q') goto yy71; + goto yy225; } else { if(yych <= 'l') { - if(yych <= 'k') goto yy69; - goto yy222; + if(yych <= 'k') goto yy71; + goto yy224; } else { - if(yych == 'r') goto yy223; - goto yy69; + if(yych == 'r') goto yy225; + goto yy71; } } yy19: yych = *++YYCURSOR; - if(yych == 'H') goto yy217; - if(yych == 'h') goto yy217; - goto yy69; + if(yych == 'H') goto yy219; + if(yych == 'h') goto yy219; + goto yy71; yy20: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'H') { - if(yych == 'E') goto yy192; - goto yy69; + if(yych == 'E') goto yy194; + goto yy71; } else { - if(yych <= 'I') goto yy193; - if(yych <= 'N') goto yy69; - goto yy194; + if(yych <= 'I') goto yy195; + if(yych <= 'N') goto yy71; + goto yy196; } } else { if(yych <= 'h') { - if(yych == 'e') goto yy192; - goto yy69; + if(yych == 'e') goto yy194; + goto yy71; } else { - if(yych <= 'i') goto yy193; - if(yych == 'o') goto yy194; - goto yy69; + if(yych <= 'i') goto yy195; + if(yych == 'o') goto yy196; + goto yy71; } } yy21: yych = *++YYCURSOR; - if(yych == 'A') goto yy186; - if(yych == 'a') goto yy186; - goto yy69; + if(yych == 'A') goto yy188; + if(yych == 'a') goto yy188; + goto yy71; yy22: yych = *++YYCURSOR; if(yych <= 'U') { if(yych <= 'Q') { - if(yych == 'N') goto yy173; - goto yy69; + if(yych == 'N') goto yy175; + goto yy71; } else { - if(yych <= 'R') goto yy175; - if(yych <= 'T') goto yy69; - goto yy177; + if(yych <= 'R') goto yy177; + if(yych <= 'T') goto yy71; + goto yy179; } } else { if(yych <= 'q') { - if(yych == 'n') goto yy173; - goto yy69; + if(yych == 'n') goto yy175; + goto yy71; } else { - if(yych <= 'r') goto yy175; - if(yych == 'u') goto yy177; - goto yy69; + if(yych <= 'r') goto yy177; + if(yych == 'u') goto yy179; + goto yy71; } } yy23: yych = *++YYCURSOR; if(yych <= 'Y') { if(yych <= 'I') { - if(yych == 'E') goto yy148; - if(yych <= 'H') goto yy69; - goto yy149; - } else { - if(yych == 'L') goto yy150; - if(yych <= 'X') goto yy69; + if(yych == 'E') goto yy150; + if(yych <= 'H') goto yy71; goto yy151; + } else { + if(yych == 'L') goto yy152; + if(yych <= 'X') goto yy71; + goto yy153; } } else { if(yych <= 'i') { - if(yych == 'e') goto yy148; - if(yych <= 'h') goto yy69; - goto yy149; + if(yych == 'e') goto yy150; + if(yych <= 'h') goto yy71; + goto yy151; } else { if(yych <= 'l') { - if(yych <= 'k') goto yy69; - goto yy150; + if(yych <= 'k') goto yy71; + goto yy152; } else { - if(yych == 'y') goto yy151; - goto yy69; + if(yych == 'y') goto yy153; + goto yy71; } } } yy24: yych = *++YYCURSOR; - if(yych == 'R') goto yy141; - if(yych == 'r') goto yy141; - goto yy69; + if(yych == 'R') goto yy143; + if(yych == 'r') goto yy143; + goto yy71; yy25: yych = *++YYCURSOR; - if(yych == 'O') goto yy137; - if(yych == 'o') goto yy137; - goto yy69; + if(yych == 'O') goto yy139; + if(yych == 'o') goto yy139; + goto yy71; yy26: yych = *++YYCURSOR; - if(yych == 'E') goto yy129; - if(yych == 'e') goto yy129; - goto yy69; + if(yych == 'E') goto yy131; + if(yych == 'e') goto yy131; + goto yy71; yy27: yych = *++YYCURSOR; - if(yych == 'E') goto yy110; - if(yych == 'e') goto yy110; - goto yy69; + if(yych == 'E') goto yy112; + if(yych == 'e') goto yy112; + goto yy71; yy28: yych = *++YYCURSOR; - if(yych == 'E') goto yy106; - if(yych == 'e') goto yy106; - goto yy69; + if(yych == 'E') goto yy108; + if(yych == 'e') goto yy108; + goto yy71; yy29: yych = *++YYCURSOR; - if(yych == 'N') goto yy102; - if(yych == 'n') goto yy102; - goto yy69; + if(yych == 'N') goto yy104; + if(yych == 'n') goto yy104; + goto yy71; yy30: yych = *++YYCURSOR; - if(yych == '=') goto yy100; + if(yych == '=') goto yy102; goto yy2; yy31: yych = *++YYCURSOR; if(yych <= '<') goto yy2; - if(yych <= '=') goto yy96; - if(yych <= '>') goto yy98; + if(yych <= '=') goto yy98; + if(yych <= '>') goto yy100; goto yy2; yy32: yych = *++YYCURSOR; - if(yych == '=') goto yy94; + if(yych == '=') goto yy96; goto yy2; yy33: yych = *++YYCURSOR; - if(yych == 'O') goto yy91; - if(yych == 'o') goto yy91; - goto yy69; + if(yych == 'O') goto yy93; + if(yych == 'o') goto yy93; + goto yy71; yy34: ++YYCURSOR; #line 256 "pdo_user_sql_tokenizer.re" @@ -705,9 +705,9 @@ yy34: yy36: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == '.') goto yy72; + if(yych == '.') goto yy74; if(yych <= '/') goto yy37; - if(yych <= '9') goto yy89; + if(yych <= '9') goto yy91; yy37: #line 257 "pdo_user_sql_tokenizer.re" { RET(PU_MINUS); } @@ -755,2125 +755,2133 @@ yy52: yy54: ++YYCURSOR; if((yych = *YYCURSOR) <= '/') goto yy55; - if(yych <= '9') goto yy73; + if(yych <= '9') goto yy75; yy55: #line 266 "pdo_user_sql_tokenizer.re" { RET(PU_DOT); } #line 763 "pdo_user_sql_tokenizer.c" yy56: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yybm[0+yych] & 1) { - goto yy56; + if(yybm[0+(yych = *YYCURSOR)] & 32) { + goto yy70; } - if(yych <= 0x00) goto yy2; - if(yych <= '_') goto yy86; - goto yy87; +#line 267 "pdo_user_sql_tokenizer.re" + { RET(PU_COLON); } +#line 771 "pdo_user_sql_tokenizer.c" yy58: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yybm[0+yych] & 2) { + if(yybm[0+yych] & 1) { goto yy58; } if(yych <= 0x00) goto yy2; - if(yych <= '[') goto yy84; - goto yy83; + if(yych <= '_') goto yy88; + goto yy89; yy60: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yybm[0+yych] & 4) { + if(yybm[0+yych] & 2) { goto yy60; } if(yych <= 0x00) goto yy2; - if(yych <= '[') goto yy81; - goto yy80; + if(yych <= '[') goto yy86; + goto yy85; yy62: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy63: - if(yybm[0+yych] & 8) { + if(yybm[0+yych] & 4) { goto yy62; } - goto yy6; + if(yych <= 0x00) goto yy2; + if(yych <= '[') goto yy83; + goto yy82; yy64: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy65: + if(yybm[0+yych] & 8) { + goto yy64; + } + goto yy6; +yy66: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'X') goto yy76; - if(yych == 'x') goto yy76; - goto yy67; -yy65: -#line 274 "pdo_user_sql_tokenizer.re" + if(yych == 'X') goto yy78; + if(yych == 'x') goto yy78; + goto yy69; +yy67: +#line 275 "pdo_user_sql_tokenizer.re" { RET(PU_LNUM); } -#line 812 "pdo_user_sql_tokenizer.c" -yy66: +#line 820 "pdo_user_sql_tokenizer.c" +yy68: yyaccept = 1; YYMARKER = ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -yy67: +yy69: if(yybm[0+yych] & 16) { - goto yy66; + goto yy68; } - if(yych == '.') goto yy72; - goto yy65; -yy68: + if(yych == '.') goto yy74; + goto yy67; +yy70: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy69: +yy71: if(yybm[0+yych] & 32) { - goto yy68; + goto yy70; } goto yy4; -yy70: - ++YYCURSOR; -#line 276 "pdo_user_sql_tokenizer.re" - { RET(PU_END); } -#line 837 "pdo_user_sql_tokenizer.c" yy72: + ++YYCURSOR; +#line 277 "pdo_user_sql_tokenizer.re" + { RET(PU_END); } +#line 845 "pdo_user_sql_tokenizer.c" +yy74: yych = *++YYCURSOR; if(yych <= '/') goto yy2; if(yych >= ':') goto yy2; -yy73: +yy75: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych <= '/') goto yy75; - if(yych <= '9') goto yy73; -yy75: -#line 273 "pdo_user_sql_tokenizer.re" + if(yych <= '/') goto yy77; + if(yych <= '9') goto yy75; +yy77: +#line 274 "pdo_user_sql_tokenizer.re" { RET(PU_DNUM); } -#line 851 "pdo_user_sql_tokenizer.c" -yy76: +#line 859 "pdo_user_sql_tokenizer.c" +yy78: yych = *++YYCURSOR; if(yybm[0+yych] & 64) { - goto yy77; + goto yy79; } goto yy2; -yy77: +yy79: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yybm[0+yych] & 64) { - goto yy77; + goto yy79; } -#line 272 "pdo_user_sql_tokenizer.re" +#line 273 "pdo_user_sql_tokenizer.re" { RET(PU_HNUM); } -#line 867 "pdo_user_sql_tokenizer.c" -yy80: +#line 875 "pdo_user_sql_tokenizer.c" +yy82: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy2; + goto yy62; +yy83: + ++YYCURSOR; +#line 271 "pdo_user_sql_tokenizer.re" + { RET_UNESC(PU_STRING); } +#line 886 "pdo_user_sql_tokenizer.c" +yy85: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy2; goto yy60; -yy81: +yy86: ++YYCURSOR; #line 270 "pdo_user_sql_tokenizer.re" { RET_UNESC(PU_STRING); } -#line 878 "pdo_user_sql_tokenizer.c" -yy83: +#line 897 "pdo_user_sql_tokenizer.c" +yy88: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy2; goto yy58; -yy84: +yy89: ++YYCURSOR; #line 269 "pdo_user_sql_tokenizer.re" - { RET_UNESC(PU_STRING); } -#line 889 "pdo_user_sql_tokenizer.c" -yy86: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy2; - goto yy56; -yy87: - ++YYCURSOR; -#line 268 "pdo_user_sql_tokenizer.re" { RET_UNESC(PU_LABEL); } -#line 900 "pdo_user_sql_tokenizer.c" -yy89: +#line 908 "pdo_user_sql_tokenizer.c" +yy91: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - if(yych == '.') goto yy72; + if(yych == '.') goto yy74; if(yych <= '/') goto yy2; - if(yych <= '9') goto yy89; + if(yych <= '9') goto yy91; goto yy2; -yy91: +yy93: yych = *++YYCURSOR; - if(yych == 'R') goto yy92; - if(yych != 'r') goto yy69; -yy92: + if(yych == 'R') goto yy94; + if(yych != 'r') goto yy71; +yy94: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 253 "pdo_user_sql_tokenizer.re" { RET(PU_XOR); } -#line 920 "pdo_user_sql_tokenizer.c" -yy94: +#line 928 "pdo_user_sql_tokenizer.c" +yy96: ++YYCURSOR; #line 247 "pdo_user_sql_tokenizer.re" { RET(PU_GREATER_EQUAL); } -#line 925 "pdo_user_sql_tokenizer.c" -yy96: +#line 933 "pdo_user_sql_tokenizer.c" +yy98: ++YYCURSOR; #line 246 "pdo_user_sql_tokenizer.re" { RET(PU_LESSER_EQUAL); } -#line 930 "pdo_user_sql_tokenizer.c" -yy98: +#line 938 "pdo_user_sql_tokenizer.c" +yy100: ++YYCURSOR; #line 245 "pdo_user_sql_tokenizer.re" { RET(PU_UNEQUAL); } -#line 935 "pdo_user_sql_tokenizer.c" -yy100: +#line 943 "pdo_user_sql_tokenizer.c" +yy102: ++YYCURSOR; #line 244 "pdo_user_sql_tokenizer.re" { RET(PU_NOT_EQUAL); } -#line 940 "pdo_user_sql_tokenizer.c" -yy102: - yych = *++YYCURSOR; - if(yych == 'U') goto yy103; - if(yych != 'u') goto yy69; -yy103: - yych = *++YYCURSOR; - if(yych == 'M') goto yy104; - if(yych != 'm') goto yy69; +#line 948 "pdo_user_sql_tokenizer.c" yy104: + yych = *++YYCURSOR; + if(yych == 'U') goto yy105; + if(yych != 'u') goto yy71; +yy105: + yych = *++YYCURSOR; + if(yych == 'M') goto yy106; + if(yych != 'm') goto yy71; +yy106: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 241 "pdo_user_sql_tokenizer.re" { RET(PU_ENUM); } -#line 956 "pdo_user_sql_tokenizer.c" -yy106: - yych = *++YYCURSOR; - if(yych == 'A') goto yy107; - if(yych != 'a') goto yy69; -yy107: - yych = *++YYCURSOR; - if(yych == 'R') goto yy108; - if(yych != 'r') goto yy69; +#line 964 "pdo_user_sql_tokenizer.c" yy108: + yych = *++YYCURSOR; + if(yych == 'A') goto yy109; + if(yych != 'a') goto yy71; +yy109: + yych = *++YYCURSOR; + if(yych == 'R') goto yy110; + if(yych != 'r') goto yy71; +yy110: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 227 "pdo_user_sql_tokenizer.re" { RET(PU_YEAR); } -#line 972 "pdo_user_sql_tokenizer.c" -yy110: - yych = *++YYCURSOR; - if(yych == 'D') goto yy111; - if(yych != 'd') goto yy69; -yy111: - yych = *++YYCURSOR; - if(yych == 'I') goto yy112; - if(yych != 'i') goto yy69; +#line 980 "pdo_user_sql_tokenizer.c" yy112: yych = *++YYCURSOR; - if(yych == 'U') goto yy113; - if(yych != 'u') goto yy69; + if(yych == 'D') goto yy113; + if(yych != 'd') goto yy71; yy113: yych = *++YYCURSOR; - if(yych == 'M') goto yy114; - if(yych != 'm') goto yy69; + if(yych == 'I') goto yy114; + if(yych != 'i') goto yy71; yy114: + yych = *++YYCURSOR; + if(yych == 'U') goto yy115; + if(yych != 'u') goto yy71; +yy115: + yych = *++YYCURSOR; + if(yych == 'M') goto yy116; + if(yych != 'm') goto yy71; +yy116: yych = *++YYCURSOR; if(yych <= 'T') { if(yych <= 'H') { - if(yych == 'B') goto yy117; - goto yy69; + if(yych == 'B') goto yy119; + goto yy71; } else { - if(yych <= 'I') goto yy115; - if(yych <= 'S') goto yy69; - goto yy116; + if(yych <= 'I') goto yy117; + if(yych <= 'S') goto yy71; + goto yy118; } } else { if(yych <= 'h') { - if(yych == 'b') goto yy117; - goto yy69; + if(yych == 'b') goto yy119; + goto yy71; } else { - if(yych <= 'i') goto yy115; - if(yych == 't') goto yy116; - goto yy69; + if(yych <= 'i') goto yy117; + if(yych == 't') goto yy118; + goto yy71; } } -yy115: - yych = *++YYCURSOR; - if(yych == 'N') goto yy126; - if(yych == 'n') goto yy126; - goto yy69; -yy116: - yych = *++YYCURSOR; - if(yych == 'E') goto yy122; - if(yych == 'e') goto yy122; - goto yy69; yy117: yych = *++YYCURSOR; - if(yych == 'L') goto yy118; - if(yych != 'l') goto yy69; + if(yych == 'N') goto yy128; + if(yych == 'n') goto yy128; + goto yy71; yy118: yych = *++YYCURSOR; - if(yych == 'O') goto yy119; - if(yych != 'o') goto yy69; + if(yych == 'E') goto yy124; + if(yych == 'e') goto yy124; + goto yy71; yy119: yych = *++YYCURSOR; - if(yych == 'B') goto yy120; - if(yych != 'b') goto yy69; + if(yych == 'L') goto yy120; + if(yych != 'l') goto yy71; yy120: + yych = *++YYCURSOR; + if(yych == 'O') goto yy121; + if(yych != 'o') goto yy71; +yy121: + yych = *++YYCURSOR; + if(yych == 'B') goto yy122; + if(yych != 'b') goto yy71; +yy122: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 238 "pdo_user_sql_tokenizer.re" { RET(PU_MEDIUMBLOB); } -#line 1039 "pdo_user_sql_tokenizer.c" -yy122: - yych = *++YYCURSOR; - if(yych == 'X') goto yy123; - if(yych != 'x') goto yy69; -yy123: - yych = *++YYCURSOR; - if(yych == 'T') goto yy124; - if(yych != 't') goto yy69; +#line 1047 "pdo_user_sql_tokenizer.c" yy124: + yych = *++YYCURSOR; + if(yych == 'X') goto yy125; + if(yych != 'x') goto yy71; +yy125: + yych = *++YYCURSOR; + if(yych == 'T') goto yy126; + if(yych != 't') goto yy71; +yy126: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 234 "pdo_user_sql_tokenizer.re" { RET(PU_MEDIUMTEXT); } -#line 1055 "pdo_user_sql_tokenizer.c" -yy126: +#line 1063 "pdo_user_sql_tokenizer.c" +yy128: yych = *++YYCURSOR; - if(yych == 'T') goto yy127; - if(yych != 't') goto yy69; -yy127: + if(yych == 'T') goto yy129; + if(yych != 't') goto yy71; +yy129: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 217 "pdo_user_sql_tokenizer.re" { RET(PU_MEDIUMINT); } -#line 1067 "pdo_user_sql_tokenizer.c" -yy129: - yych = *++YYCURSOR; - if(yych == 'R') goto yy130; - if(yych != 'r') goto yy69; -yy130: - yych = *++YYCURSOR; - if(yych == 'O') goto yy131; - if(yych != 'o') goto yy69; +#line 1075 "pdo_user_sql_tokenizer.c" yy131: yych = *++YYCURSOR; - if(yych == 'F') goto yy132; - if(yych != 'f') goto yy69; + if(yych == 'R') goto yy132; + if(yych != 'r') goto yy71; yy132: yych = *++YYCURSOR; - if(yych == 'I') goto yy133; - if(yych != 'i') goto yy69; + if(yych == 'O') goto yy133; + if(yych != 'o') goto yy71; yy133: yych = *++YYCURSOR; - if(yych == 'L') goto yy134; - if(yych != 'l') goto yy69; + if(yych == 'F') goto yy134; + if(yych != 'f') goto yy71; yy134: yych = *++YYCURSOR; - if(yych == 'L') goto yy135; - if(yych != 'l') goto yy69; + if(yych == 'I') goto yy135; + if(yych != 'i') goto yy71; yy135: + yych = *++YYCURSOR; + if(yych == 'L') goto yy136; + if(yych != 'l') goto yy71; +yy136: + yych = *++YYCURSOR; + if(yych == 'L') goto yy137; + if(yych != 'l') goto yy71; +yy137: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 209 "pdo_user_sql_tokenizer.re" { RET(PU_ZEROFILL); } -#line 1099 "pdo_user_sql_tokenizer.c" -yy137: - yych = *++YYCURSOR; - if(yych == 'I') goto yy138; - if(yych != 'i') goto yy69; -yy138: - yych = *++YYCURSOR; - if(yych == 'N') goto yy139; - if(yych != 'n') goto yy69; +#line 1107 "pdo_user_sql_tokenizer.c" yy139: + yych = *++YYCURSOR; + if(yych == 'I') goto yy140; + if(yych != 'i') goto yy71; +yy140: + yych = *++YYCURSOR; + if(yych == 'N') goto yy141; + if(yych != 'n') goto yy71; +yy141: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 204 "pdo_user_sql_tokenizer.re" { RET(PU_JOIN); } -#line 1115 "pdo_user_sql_tokenizer.c" -yy141: - yych = *++YYCURSOR; - if(yych == 'I') goto yy142; - if(yych != 'i') goto yy69; -yy142: - yych = *++YYCURSOR; - if(yych == 'M') goto yy143; - if(yych != 'm') goto yy69; +#line 1123 "pdo_user_sql_tokenizer.c" yy143: yych = *++YYCURSOR; - if(yych == 'A') goto yy144; - if(yych != 'a') goto yy69; + if(yych == 'I') goto yy144; + if(yych != 'i') goto yy71; yy144: yych = *++YYCURSOR; - if(yych == 'R') goto yy145; - if(yych != 'r') goto yy69; + if(yych == 'M') goto yy145; + if(yych != 'm') goto yy71; yy145: yych = *++YYCURSOR; - if(yych == 'Y') goto yy146; - if(yych != 'y') goto yy69; + if(yych == 'A') goto yy146; + if(yych != 'a') goto yy71; yy146: + yych = *++YYCURSOR; + if(yych == 'R') goto yy147; + if(yych != 'r') goto yy71; +yy147: + yych = *++YYCURSOR; + if(yych == 'Y') goto yy148; + if(yych != 'y') goto yy71; +yy148: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 195 "pdo_user_sql_tokenizer.re" { RET(PU_PRIMARY); } -#line 1143 "pdo_user_sql_tokenizer.c" -yy148: +#line 1151 "pdo_user_sql_tokenizer.c" +yy150: yych = *++YYCURSOR; - if(yych == 'F') goto yy168; - if(yych == 'f') goto yy168; - goto yy69; -yy149: + if(yych == 'F') goto yy170; + if(yych == 'f') goto yy170; + goto yy71; +yy151: yych = *++YYCURSOR; if(yych <= 'T') { if(yych <= 'M') { - if(yych == 'G') goto yy158; - goto yy69; + if(yych == 'G') goto yy160; + goto yy71; } else { - if(yych <= 'N') goto yy159; - if(yych <= 'S') goto yy69; - goto yy156; + if(yych <= 'N') goto yy161; + if(yych <= 'S') goto yy71; + goto yy158; } } else { if(yych <= 'm') { - if(yych == 'g') goto yy158; - goto yy69; + if(yych == 'g') goto yy160; + goto yy71; } else { - if(yych <= 'n') goto yy159; - if(yych == 't') goto yy156; - goto yy69; + if(yych <= 'n') goto yy161; + if(yych == 't') goto yy158; + goto yy71; } } -yy150: +yy152: yych = *++YYCURSOR; - if(yych == 'O') goto yy153; - if(yych == 'o') goto yy153; - goto yy69; -yy151: + if(yych == 'O') goto yy155; + if(yych == 'o') goto yy155; + goto yy71; +yy153: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 190 "pdo_user_sql_tokenizer.re" { RET(PU_BY); } -#line 1182 "pdo_user_sql_tokenizer.c" -yy153: +#line 1190 "pdo_user_sql_tokenizer.c" +yy155: yych = *++YYCURSOR; - if(yych == 'B') goto yy154; - if(yych != 'b') goto yy69; -yy154: - ++YYCURSOR; - if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; - } -#line 236 "pdo_user_sql_tokenizer.re" - { RET(PU_BLOB); } -#line 1194 "pdo_user_sql_tokenizer.c" + if(yych == 'B') goto yy156; + if(yych != 'b') goto yy71; yy156: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; + } +#line 236 "pdo_user_sql_tokenizer.re" + { RET(PU_BLOB); } +#line 1202 "pdo_user_sql_tokenizer.c" +yy158: + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 32) { + goto yy70; } #line 212 "pdo_user_sql_tokenizer.re" { RET(PU_BIT); } -#line 1202 "pdo_user_sql_tokenizer.c" -yy158: - yych = *++YYCURSOR; - if(yych == 'I') goto yy164; - if(yych == 'i') goto yy164; - goto yy69; -yy159: - yych = *++YYCURSOR; - if(yych == 'A') goto yy160; - if(yych != 'a') goto yy69; +#line 1210 "pdo_user_sql_tokenizer.c" yy160: yych = *++YYCURSOR; - if(yych == 'R') goto yy161; - if(yych != 'r') goto yy69; + if(yych == 'I') goto yy166; + if(yych == 'i') goto yy166; + goto yy71; yy161: yych = *++YYCURSOR; - if(yych == 'Y') goto yy162; - if(yych != 'y') goto yy69; + if(yych == 'A') goto yy162; + if(yych != 'a') goto yy71; yy162: + yych = *++YYCURSOR; + if(yych == 'R') goto yy163; + if(yych != 'r') goto yy71; +yy163: + yych = *++YYCURSOR; + if(yych == 'Y') goto yy164; + if(yych != 'y') goto yy71; +yy164: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 221 "pdo_user_sql_tokenizer.re" { RET(PU_BINARY); } -#line 1227 "pdo_user_sql_tokenizer.c" -yy164: - yych = *++YYCURSOR; - if(yych == 'N') goto yy165; - if(yych != 'n') goto yy69; -yy165: - yych = *++YYCURSOR; - if(yych == 'T') goto yy166; - if(yych != 't') goto yy69; +#line 1235 "pdo_user_sql_tokenizer.c" yy166: + yych = *++YYCURSOR; + if(yych == 'N') goto yy167; + if(yych != 'n') goto yy71; +yy167: + yych = *++YYCURSOR; + if(yych == 'T') goto yy168; + if(yych != 't') goto yy71; +yy168: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 218 "pdo_user_sql_tokenizer.re" { RET(PU_BIGINT); } -#line 1243 "pdo_user_sql_tokenizer.c" -yy168: - yych = *++YYCURSOR; - if(yych == 'O') goto yy169; - if(yych != 'o') goto yy69; -yy169: - yych = *++YYCURSOR; - if(yych == 'R') goto yy170; - if(yych != 'r') goto yy69; +#line 1251 "pdo_user_sql_tokenizer.c" yy170: yych = *++YYCURSOR; - if(yych == 'E') goto yy171; - if(yych != 'e') goto yy69; + if(yych == 'O') goto yy171; + if(yych != 'o') goto yy71; yy171: - ++YYCURSOR; - if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; - } -#line 196 "pdo_user_sql_tokenizer.re" - { RET(PU_BEFORE); } -#line 1263 "pdo_user_sql_tokenizer.c" + yych = *++YYCURSOR; + if(yych == 'R') goto yy172; + if(yych != 'r') goto yy71; +yy172: + yych = *++YYCURSOR; + if(yych == 'E') goto yy173; + if(yych != 'e') goto yy71; yy173: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } -#line 205 "pdo_user_sql_tokenizer.re" - { RET(PU_ON); } +#line 196 "pdo_user_sql_tokenizer.re" + { RET(PU_BEFORE); } #line 1271 "pdo_user_sql_tokenizer.c" yy175: + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 32) { + goto yy70; + } +#line 205 "pdo_user_sql_tokenizer.re" + { RET(PU_ON); } +#line 1279 "pdo_user_sql_tokenizer.c" +yy177: ++YYCURSOR; if((yych = *YYCURSOR) <= '^') { if(yych <= '@') { - if(yych <= '/') goto yy176; - if(yych <= '9') goto yy68; + if(yych <= '/') goto yy178; + if(yych <= '9') goto yy70; } else { - if(yych == 'D') goto yy182; - if(yych <= 'Z') goto yy68; + if(yych == 'D') goto yy184; + if(yych <= 'Z') goto yy70; } } else { if(yych <= 'c') { - if(yych != '`') goto yy68; + if(yych != '`') goto yy70; } else { - if(yych <= 'd') goto yy182; - if(yych <= 'z') goto yy68; - if(yych >= 0x80) goto yy68; + if(yych <= 'd') goto yy184; + if(yych <= 'z') goto yy70; + if(yych >= 0x80) goto yy70; } } -yy176: +yy178: #line 252 "pdo_user_sql_tokenizer.re" { RET(PU_OR); } -#line 1294 "pdo_user_sql_tokenizer.c" -yy177: - yych = *++YYCURSOR; - if(yych == 'T') goto yy178; - if(yych != 't') goto yy69; -yy178: - yych = *++YYCURSOR; - if(yych == 'E') goto yy179; - if(yych != 'e') goto yy69; +#line 1302 "pdo_user_sql_tokenizer.c" yy179: yych = *++YYCURSOR; - if(yych == 'R') goto yy180; - if(yych != 'r') goto yy69; + if(yych == 'T') goto yy180; + if(yych != 't') goto yy71; yy180: + yych = *++YYCURSOR; + if(yych == 'E') goto yy181; + if(yych != 'e') goto yy71; +yy181: + yych = *++YYCURSOR; + if(yych == 'R') goto yy182; + if(yych != 'r') goto yy71; +yy182: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 201 "pdo_user_sql_tokenizer.re" { RET(PU_OUTER); } -#line 1314 "pdo_user_sql_tokenizer.c" -yy182: - yych = *++YYCURSOR; - if(yych == 'E') goto yy183; - if(yych != 'e') goto yy69; -yy183: - yych = *++YYCURSOR; - if(yych == 'R') goto yy184; - if(yych != 'r') goto yy69; +#line 1322 "pdo_user_sql_tokenizer.c" yy184: + yych = *++YYCURSOR; + if(yych == 'E') goto yy185; + if(yych != 'e') goto yy71; +yy185: + yych = *++YYCURSOR; + if(yych == 'R') goto yy186; + if(yych != 'r') goto yy71; +yy186: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 189 "pdo_user_sql_tokenizer.re" { RET(PU_ORDER); } -#line 1330 "pdo_user_sql_tokenizer.c" -yy186: - yych = *++YYCURSOR; - if(yych == 'V') goto yy187; - if(yych != 'v') goto yy69; -yy187: - yych = *++YYCURSOR; - if(yych == 'I') goto yy188; - if(yych != 'i') goto yy69; +#line 1338 "pdo_user_sql_tokenizer.c" yy188: yych = *++YYCURSOR; - if(yych == 'N') goto yy189; - if(yych != 'n') goto yy69; + if(yych == 'V') goto yy189; + if(yych != 'v') goto yy71; yy189: yych = *++YYCURSOR; - if(yych == 'G') goto yy190; - if(yych != 'g') goto yy69; + if(yych == 'I') goto yy190; + if(yych != 'i') goto yy71; yy190: + yych = *++YYCURSOR; + if(yych == 'N') goto yy191; + if(yych != 'n') goto yy71; +yy191: + yych = *++YYCURSOR; + if(yych == 'G') goto yy192; + if(yych != 'g') goto yy71; +yy192: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 188 "pdo_user_sql_tokenizer.re" { RET(PU_HAVING); } -#line 1354 "pdo_user_sql_tokenizer.c" -yy192: - yych = *++YYCURSOR; - if(yych == 'F') goto yy214; - if(yych == 'f') goto yy214; - goto yy69; -yy193: - yych = *++YYCURSOR; - if(yych <= 'M') { - if(yych == 'K') goto yy208; - if(yych <= 'L') goto yy69; - goto yy207; - } else { - if(yych <= 'k') { - if(yych <= 'j') goto yy69; - goto yy208; - } else { - if(yych == 'm') goto yy207; - goto yy69; - } - } +#line 1362 "pdo_user_sql_tokenizer.c" yy194: yych = *++YYCURSOR; - if(yych == 'N') goto yy195; - if(yych != 'n') goto yy69; + if(yych == 'F') goto yy216; + if(yych == 'f') goto yy216; + goto yy71; yy195: yych = *++YYCURSOR; - if(yych == 'G') goto yy196; - if(yych != 'g') goto yy69; + if(yych <= 'M') { + if(yych == 'K') goto yy210; + if(yych <= 'L') goto yy71; + goto yy209; + } else { + if(yych <= 'k') { + if(yych <= 'j') goto yy71; + goto yy210; + } else { + if(yych == 'm') goto yy209; + goto yy71; + } + } yy196: + yych = *++YYCURSOR; + if(yych == 'N') goto yy197; + if(yych != 'n') goto yy71; +yy197: + yych = *++YYCURSOR; + if(yych == 'G') goto yy198; + if(yych != 'g') goto yy71; +yy198: yych = *++YYCURSOR; if(yych <= 'T') { - if(yych == 'B') goto yy198; - if(yych <= 'S') goto yy69; + if(yych == 'B') goto yy200; + if(yych <= 'S') goto yy71; } else { if(yych <= 'b') { - if(yych <= 'a') goto yy69; - goto yy198; + if(yych <= 'a') goto yy71; + goto yy200; } else { - if(yych != 't') goto yy69; + if(yych != 't') goto yy71; } } yych = *++YYCURSOR; - if(yych == 'E') goto yy203; - if(yych == 'e') goto yy203; - goto yy69; -yy198: - yych = *++YYCURSOR; - if(yych == 'L') goto yy199; - if(yych != 'l') goto yy69; -yy199: - yych = *++YYCURSOR; - if(yych == 'O') goto yy200; - if(yych != 'o') goto yy69; + if(yych == 'E') goto yy205; + if(yych == 'e') goto yy205; + goto yy71; yy200: yych = *++YYCURSOR; - if(yych == 'B') goto yy201; - if(yych != 'b') goto yy69; + if(yych == 'L') goto yy201; + if(yych != 'l') goto yy71; yy201: + yych = *++YYCURSOR; + if(yych == 'O') goto yy202; + if(yych != 'o') goto yy71; +yy202: + yych = *++YYCURSOR; + if(yych == 'B') goto yy203; + if(yych != 'b') goto yy71; +yy203: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 239 "pdo_user_sql_tokenizer.re" { RET(PU_LONGBLOB); } -#line 1419 "pdo_user_sql_tokenizer.c" -yy203: - yych = *++YYCURSOR; - if(yych == 'X') goto yy204; - if(yych != 'x') goto yy69; -yy204: - yych = *++YYCURSOR; - if(yych == 'T') goto yy205; - if(yych != 't') goto yy69; +#line 1427 "pdo_user_sql_tokenizer.c" yy205: + yych = *++YYCURSOR; + if(yych == 'X') goto yy206; + if(yych != 'x') goto yy71; +yy206: + yych = *++YYCURSOR; + if(yych == 'T') goto yy207; + if(yych != 't') goto yy71; +yy207: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 235 "pdo_user_sql_tokenizer.re" { RET(PU_LONGTEXT); } -#line 1435 "pdo_user_sql_tokenizer.c" -yy207: - yych = *++YYCURSOR; - if(yych == 'I') goto yy211; - if(yych == 'i') goto yy211; - goto yy69; -yy208: - yych = *++YYCURSOR; - if(yych == 'E') goto yy209; - if(yych != 'e') goto yy69; +#line 1443 "pdo_user_sql_tokenizer.c" yy209: + yych = *++YYCURSOR; + if(yych == 'I') goto yy213; + if(yych == 'i') goto yy213; + goto yy71; +yy210: + yych = *++YYCURSOR; + if(yych == 'E') goto yy211; + if(yych != 'e') goto yy71; +yy211: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 248 "pdo_user_sql_tokenizer.re" { RET(PU_LIKE); } -#line 1452 "pdo_user_sql_tokenizer.c" -yy211: +#line 1460 "pdo_user_sql_tokenizer.c" +yy213: yych = *++YYCURSOR; - if(yych == 'T') goto yy212; - if(yych != 't') goto yy69; -yy212: + if(yych == 'T') goto yy214; + if(yych != 't') goto yy71; +yy214: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 187 "pdo_user_sql_tokenizer.re" { RET(PU_LIMIT); } -#line 1464 "pdo_user_sql_tokenizer.c" -yy214: +#line 1472 "pdo_user_sql_tokenizer.c" +yy216: yych = *++YYCURSOR; - if(yych == 'T') goto yy215; - if(yych != 't') goto yy69; -yy215: + if(yych == 'T') goto yy217; + if(yych != 't') goto yy71; +yy217: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 202 "pdo_user_sql_tokenizer.re" { RET(PU_LEFT); } -#line 1476 "pdo_user_sql_tokenizer.c" -yy217: - yych = *++YYCURSOR; - if(yych == 'E') goto yy218; - if(yych != 'e') goto yy69; -yy218: - yych = *++YYCURSOR; - if(yych == 'R') goto yy219; - if(yych != 'r') goto yy69; +#line 1484 "pdo_user_sql_tokenizer.c" yy219: yych = *++YYCURSOR; if(yych == 'E') goto yy220; - if(yych != 'e') goto yy69; + if(yych != 'e') goto yy71; yy220: + yych = *++YYCURSOR; + if(yych == 'R') goto yy221; + if(yych != 'r') goto yy71; +yy221: + yych = *++YYCURSOR; + if(yych == 'E') goto yy222; + if(yych != 'e') goto yy71; +yy222: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 185 "pdo_user_sql_tokenizer.re" { RET(PU_WHERE); } -#line 1496 "pdo_user_sql_tokenizer.c" -yy222: - yych = *++YYCURSOR; - if(yych == 'O') goto yy227; - if(yych == 'o') goto yy227; - goto yy69; -yy223: - yych = *++YYCURSOR; - if(yych == 'O') goto yy224; - if(yych != 'o') goto yy69; +#line 1504 "pdo_user_sql_tokenizer.c" yy224: yych = *++YYCURSOR; - if(yych == 'M') goto yy225; - if(yych != 'm') goto yy69; + if(yych == 'O') goto yy229; + if(yych == 'o') goto yy229; + goto yy71; yy225: + yych = *++YYCURSOR; + if(yych == 'O') goto yy226; + if(yych != 'o') goto yy71; +yy226: + yych = *++YYCURSOR; + if(yych == 'M') goto yy227; + if(yych != 'm') goto yy71; +yy227: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 183 "pdo_user_sql_tokenizer.re" { RET(PU_FROM); } -#line 1517 "pdo_user_sql_tokenizer.c" -yy227: - yych = *++YYCURSOR; - if(yych == 'A') goto yy228; - if(yych != 'a') goto yy69; -yy228: - yych = *++YYCURSOR; - if(yych == 'T') goto yy229; - if(yych != 't') goto yy69; +#line 1525 "pdo_user_sql_tokenizer.c" yy229: + yych = *++YYCURSOR; + if(yych == 'A') goto yy230; + if(yych != 'a') goto yy71; +yy230: + yych = *++YYCURSOR; + if(yych == 'T') goto yy231; + if(yych != 't') goto yy71; +yy231: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 230 "pdo_user_sql_tokenizer.re" { RET(PU_FLOAT); } -#line 1533 "pdo_user_sql_tokenizer.c" -yy231: - yych = *++YYCURSOR; - if(yych == 'T') goto yy236; - if(yych == 't') goto yy236; - goto yy69; -yy232: - yych = *++YYCURSOR; - if(yych == 'L') goto yy233; - if(yych != 'l') goto yy69; +#line 1541 "pdo_user_sql_tokenizer.c" yy233: yych = *++YYCURSOR; - if(yych == 'L') goto yy234; - if(yych != 'l') goto yy69; + if(yych == 'T') goto yy238; + if(yych == 't') goto yy238; + goto yy71; yy234: - ++YYCURSOR; - if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; - } -#line 177 "pdo_user_sql_tokenizer.re" - { RET(PU_NULL); } -#line 1554 "pdo_user_sql_tokenizer.c" + yych = *++YYCURSOR; + if(yych == 'L') goto yy235; + if(yych != 'l') goto yy71; +yy235: + yych = *++YYCURSOR; + if(yych == 'L') goto yy236; + if(yych != 'l') goto yy71; yy236: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; + } +#line 177 "pdo_user_sql_tokenizer.re" + { RET(PU_NULL); } +#line 1562 "pdo_user_sql_tokenizer.c" +yy238: + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 32) { + goto yy70; } #line 250 "pdo_user_sql_tokenizer.re" { RET(PU_NOT); } -#line 1562 "pdo_user_sql_tokenizer.c" -yy238: +#line 1570 "pdo_user_sql_tokenizer.c" +yy240: yych = *++YYCURSOR; - if(yych == 'Y') goto yy239; - if(yych != 'y') goto yy69; -yy239: + if(yych == 'Y') goto yy241; + if(yych != 'y') goto yy71; +yy241: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 176 "pdo_user_sql_tokenizer.re" { RET(PU_KEY); } -#line 1574 "pdo_user_sql_tokenizer.c" -yy241: - yych = *++YYCURSOR; - if(yych <= 'R') { - if(yych == 'L') goto yy246; - if(yych <= 'Q') goto yy69; - goto yy247; - } else { - if(yych <= 'l') { - if(yych <= 'k') goto yy69; - goto yy246; - } else { - if(yych == 'r') goto yy247; - goto yy69; - } - } -yy242: - yych = *++YYCURSOR; - if(yych == 'E') goto yy243; - if(yych != 'e') goto yy69; +#line 1582 "pdo_user_sql_tokenizer.c" yy243: yych = *++YYCURSOR; - if(yych == 'W') goto yy244; - if(yych != 'w') goto yy69; + if(yych <= 'R') { + if(yych == 'L') goto yy248; + if(yych <= 'Q') goto yy71; + goto yy249; + } else { + if(yych <= 'l') { + if(yych <= 'k') goto yy71; + goto yy248; + } else { + if(yych == 'r') goto yy249; + goto yy71; + } + } yy244: + yych = *++YYCURSOR; + if(yych == 'E') goto yy245; + if(yych != 'e') goto yy71; +yy245: + yych = *++YYCURSOR; + if(yych == 'W') goto yy246; + if(yych != 'w') goto yy71; +yy246: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 174 "pdo_user_sql_tokenizer.re" { RET(PU_VIEW); } -#line 1605 "pdo_user_sql_tokenizer.c" -yy246: - yych = *++YYCURSOR; - if(yych == 'U') goto yy260; - if(yych == 'u') goto yy260; - goto yy69; -yy247: - yych = *++YYCURSOR; - if(yych <= 'C') { - if(yych <= 'A') goto yy69; - if(yych >= 'C') goto yy249; - } else { - if(yych <= 'a') goto yy69; - if(yych <= 'b') goto yy248; - if(yych <= 'c') goto yy249; - goto yy69; - } +#line 1613 "pdo_user_sql_tokenizer.c" yy248: yych = *++YYCURSOR; - if(yych == 'I') goto yy254; - if(yych == 'i') goto yy254; - goto yy69; + if(yych == 'U') goto yy262; + if(yych == 'u') goto yy262; + goto yy71; yy249: yych = *++YYCURSOR; - if(yych == 'H') goto yy250; - if(yych != 'h') goto yy69; + if(yych <= 'C') { + if(yych <= 'A') goto yy71; + if(yych >= 'C') goto yy251; + } else { + if(yych <= 'a') goto yy71; + if(yych <= 'b') goto yy250; + if(yych <= 'c') goto yy251; + goto yy71; + } yy250: yych = *++YYCURSOR; - if(yych == 'A') goto yy251; - if(yych != 'a') goto yy69; + if(yych == 'I') goto yy256; + if(yych == 'i') goto yy256; + goto yy71; yy251: yych = *++YYCURSOR; - if(yych == 'R') goto yy252; - if(yych != 'r') goto yy69; + if(yych == 'H') goto yy252; + if(yych != 'h') goto yy71; yy252: + yych = *++YYCURSOR; + if(yych == 'A') goto yy253; + if(yych != 'a') goto yy71; +yy253: + yych = *++YYCURSOR; + if(yych == 'R') goto yy254; + if(yych != 'r') goto yy71; +yy254: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 220 "pdo_user_sql_tokenizer.re" { RET(PU_VARCHAR); } -#line 1646 "pdo_user_sql_tokenizer.c" -yy254: - yych = *++YYCURSOR; - if(yych == 'N') goto yy255; - if(yych != 'n') goto yy69; -yy255: - yych = *++YYCURSOR; - if(yych == 'A') goto yy256; - if(yych != 'a') goto yy69; +#line 1654 "pdo_user_sql_tokenizer.c" yy256: yych = *++YYCURSOR; - if(yych == 'R') goto yy257; - if(yych != 'r') goto yy69; + if(yych == 'N') goto yy257; + if(yych != 'n') goto yy71; yy257: yych = *++YYCURSOR; - if(yych == 'Y') goto yy258; - if(yych != 'y') goto yy69; + if(yych == 'A') goto yy258; + if(yych != 'a') goto yy71; yy258: + yych = *++YYCURSOR; + if(yych == 'R') goto yy259; + if(yych != 'r') goto yy71; +yy259: + yych = *++YYCURSOR; + if(yych == 'Y') goto yy260; + if(yych != 'y') goto yy71; +yy260: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 222 "pdo_user_sql_tokenizer.re" { RET(PU_VARBINARY); } -#line 1670 "pdo_user_sql_tokenizer.c" -yy260: - yych = *++YYCURSOR; - if(yych == 'E') goto yy261; - if(yych != 'e') goto yy69; -yy261: - yych = *++YYCURSOR; - if(yych == 'S') goto yy262; - if(yych != 's') goto yy69; +#line 1678 "pdo_user_sql_tokenizer.c" yy262: + yych = *++YYCURSOR; + if(yych == 'E') goto yy263; + if(yych != 'e') goto yy71; +yy263: + yych = *++YYCURSOR; + if(yych == 'S') goto yy264; + if(yych != 's') goto yy71; +yy264: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 193 "pdo_user_sql_tokenizer.re" { RET(PU_VALUES); } -#line 1686 "pdo_user_sql_tokenizer.c" -yy264: - yych = *++YYCURSOR; - if(yych == 'B') goto yy297; - if(yych == 'b') goto yy297; - goto yy69; -yy265: - yych = *++YYCURSOR; - if(yych == 'X') goto yy294; - if(yych == 'x') goto yy294; - goto yy69; +#line 1694 "pdo_user_sql_tokenizer.c" yy266: yych = *++YYCURSOR; - if(yych <= 'N') { - if(yych <= 'L') goto yy69; - if(yych <= 'M') goto yy270; - goto yy269; - } else { - if(yych <= 'l') goto yy69; - if(yych <= 'm') goto yy270; - if(yych <= 'n') goto yy269; - goto yy69; - } + if(yych == 'B') goto yy299; + if(yych == 'b') goto yy299; + goto yy71; yy267: + yych = *++YYCURSOR; + if(yych == 'X') goto yy296; + if(yych == 'x') goto yy296; + goto yy71; +yy268: + yych = *++YYCURSOR; + if(yych <= 'N') { + if(yych <= 'L') goto yy71; + if(yych <= 'M') goto yy272; + goto yy271; + } else { + if(yych <= 'l') goto yy71; + if(yych <= 'm') goto yy272; + if(yych <= 'n') goto yy271; + goto yy71; + } +yy269: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 192 "pdo_user_sql_tokenizer.re" { RET(PU_TO); } -#line 1716 "pdo_user_sql_tokenizer.c" -yy269: - yych = *++YYCURSOR; - if(yych == 'Y') goto yy279; - if(yych == 'y') goto yy279; - goto yy69; -yy270: - yych = *++YYCURSOR; - if(yych == 'E') goto yy271; - if(yych != 'e') goto yy69; +#line 1724 "pdo_user_sql_tokenizer.c" yy271: + yych = *++YYCURSOR; + if(yych == 'Y') goto yy281; + if(yych == 'y') goto yy281; + goto yy71; +yy272: + yych = *++YYCURSOR; + if(yych == 'E') goto yy273; + if(yych != 'e') goto yy71; +yy273: ++YYCURSOR; if((yych = *YYCURSOR) <= '^') { if(yych <= '@') { - if(yych <= '/') goto yy272; - if(yych <= '9') goto yy68; + if(yych <= '/') goto yy274; + if(yych <= '9') goto yy70; } else { - if(yych == 'S') goto yy273; - if(yych <= 'Z') goto yy68; + if(yych == 'S') goto yy275; + if(yych <= 'Z') goto yy70; } } else { if(yych <= 'r') { - if(yych != '`') goto yy68; + if(yych != '`') goto yy70; } else { - if(yych <= 's') goto yy273; - if(yych <= 'z') goto yy68; - if(yych >= 0x80) goto yy68; + if(yych <= 's') goto yy275; + if(yych <= 'z') goto yy70; + if(yych >= 0x80) goto yy70; } } -yy272: +yy274: #line 225 "pdo_user_sql_tokenizer.re" { RET(PU_TIME); } -#line 1748 "pdo_user_sql_tokenizer.c" -yy273: - yych = *++YYCURSOR; - if(yych == 'T') goto yy274; - if(yych != 't') goto yy69; -yy274: - yych = *++YYCURSOR; - if(yych == 'A') goto yy275; - if(yych != 'a') goto yy69; +#line 1756 "pdo_user_sql_tokenizer.c" yy275: yych = *++YYCURSOR; - if(yych == 'M') goto yy276; - if(yych != 'm') goto yy69; + if(yych == 'T') goto yy276; + if(yych != 't') goto yy71; yy276: yych = *++YYCURSOR; - if(yych == 'P') goto yy277; - if(yych != 'p') goto yy69; + if(yych == 'A') goto yy277; + if(yych != 'a') goto yy71; yy277: + yych = *++YYCURSOR; + if(yych == 'M') goto yy278; + if(yych != 'm') goto yy71; +yy278: + yych = *++YYCURSOR; + if(yych == 'P') goto yy279; + if(yych != 'p') goto yy71; +yy279: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 226 "pdo_user_sql_tokenizer.re" { RET(PU_TIMESTAMP); } -#line 1772 "pdo_user_sql_tokenizer.c" -yy279: +#line 1780 "pdo_user_sql_tokenizer.c" +yy281: yych = *++YYCURSOR; if(yych <= 'T') { if(yych <= 'H') { - if(yych == 'B') goto yy282; - goto yy69; + if(yych == 'B') goto yy284; + goto yy71; } else { - if(yych <= 'I') goto yy280; - if(yych <= 'S') goto yy69; - goto yy281; + if(yych <= 'I') goto yy282; + if(yych <= 'S') goto yy71; + goto yy283; } } else { if(yych <= 'h') { - if(yych == 'b') goto yy282; - goto yy69; + if(yych == 'b') goto yy284; + goto yy71; } else { - if(yych <= 'i') goto yy280; - if(yych == 't') goto yy281; - goto yy69; + if(yych <= 'i') goto yy282; + if(yych == 't') goto yy283; + goto yy71; } } -yy280: - yych = *++YYCURSOR; - if(yych == 'N') goto yy291; - if(yych == 'n') goto yy291; - goto yy69; -yy281: - yych = *++YYCURSOR; - if(yych == 'E') goto yy287; - if(yych == 'e') goto yy287; - goto yy69; yy282: yych = *++YYCURSOR; - if(yych == 'L') goto yy283; - if(yych != 'l') goto yy69; + if(yych == 'N') goto yy293; + if(yych == 'n') goto yy293; + goto yy71; yy283: yych = *++YYCURSOR; - if(yych == 'O') goto yy284; - if(yych != 'o') goto yy69; + if(yych == 'E') goto yy289; + if(yych == 'e') goto yy289; + goto yy71; yy284: yych = *++YYCURSOR; - if(yych == 'B') goto yy285; - if(yych != 'b') goto yy69; + if(yych == 'L') goto yy285; + if(yych != 'l') goto yy71; yy285: + yych = *++YYCURSOR; + if(yych == 'O') goto yy286; + if(yych != 'o') goto yy71; +yy286: + yych = *++YYCURSOR; + if(yych == 'B') goto yy287; + if(yych != 'b') goto yy71; +yy287: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 237 "pdo_user_sql_tokenizer.re" { RET(PU_TINYBLOB); } -#line 1823 "pdo_user_sql_tokenizer.c" -yy287: - yych = *++YYCURSOR; - if(yych == 'X') goto yy288; - if(yych != 'x') goto yy69; -yy288: - yych = *++YYCURSOR; - if(yych == 'T') goto yy289; - if(yych != 't') goto yy69; +#line 1831 "pdo_user_sql_tokenizer.c" yy289: + yych = *++YYCURSOR; + if(yych == 'X') goto yy290; + if(yych != 'x') goto yy71; +yy290: + yych = *++YYCURSOR; + if(yych == 'T') goto yy291; + if(yych != 't') goto yy71; +yy291: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 233 "pdo_user_sql_tokenizer.re" { RET(PU_TINYTEXT); } -#line 1839 "pdo_user_sql_tokenizer.c" -yy291: +#line 1847 "pdo_user_sql_tokenizer.c" +yy293: yych = *++YYCURSOR; - if(yych == 'T') goto yy292; - if(yych != 't') goto yy69; -yy292: + if(yych == 'T') goto yy294; + if(yych != 't') goto yy71; +yy294: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 215 "pdo_user_sql_tokenizer.re" { RET(PU_TINYINT); } -#line 1851 "pdo_user_sql_tokenizer.c" -yy294: +#line 1859 "pdo_user_sql_tokenizer.c" +yy296: yych = *++YYCURSOR; - if(yych == 'T') goto yy295; - if(yych != 't') goto yy69; -yy295: + if(yych == 'T') goto yy297; + if(yych != 't') goto yy71; +yy297: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 232 "pdo_user_sql_tokenizer.re" { RET(PU_TEXT); } -#line 1863 "pdo_user_sql_tokenizer.c" -yy297: - yych = *++YYCURSOR; - if(yych == 'L') goto yy298; - if(yych != 'l') goto yy69; -yy298: - yych = *++YYCURSOR; - if(yych == 'E') goto yy299; - if(yych != 'e') goto yy69; +#line 1871 "pdo_user_sql_tokenizer.c" yy299: + yych = *++YYCURSOR; + if(yych == 'L') goto yy300; + if(yych != 'l') goto yy71; +yy300: + yych = *++YYCURSOR; + if(yych == 'E') goto yy301; + if(yych != 'e') goto yy71; +yy301: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 173 "pdo_user_sql_tokenizer.re" { RET(PU_TABLE); } -#line 1879 "pdo_user_sql_tokenizer.c" -yy301: - yych = *++YYCURSOR; - if(yych <= 'O') { - if(yych == 'A') goto yy302; - if(yych <= 'N') goto yy69; - goto yy303; - } else { - if(yych <= 'a') { - if(yych <= '`') goto yy69; - } else { - if(yych == 'o') goto yy303; - goto yy69; - } - } -yy302: - yych = *++YYCURSOR; - if(yych == 'N') goto yy307; - if(yych == 'n') goto yy307; - goto yy69; +#line 1887 "pdo_user_sql_tokenizer.c" yy303: yych = *++YYCURSOR; - if(yych == 'U') goto yy304; - if(yych != 'u') goto yy69; + if(yych <= 'O') { + if(yych == 'A') goto yy304; + if(yych <= 'N') goto yy71; + goto yy305; + } else { + if(yych <= 'a') { + if(yych <= '`') goto yy71; + } else { + if(yych == 'o') goto yy305; + goto yy71; + } + } yy304: yych = *++YYCURSOR; - if(yych == 'P') goto yy305; - if(yych != 'p') goto yy69; + if(yych == 'N') goto yy309; + if(yych == 'n') goto yy309; + goto yy71; yy305: + yych = *++YYCURSOR; + if(yych == 'U') goto yy306; + if(yych != 'u') goto yy71; +yy306: + yych = *++YYCURSOR; + if(yych == 'P') goto yy307; + if(yych != 'p') goto yy71; +yy307: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 186 "pdo_user_sql_tokenizer.re" { RET(PU_GROUP); } -#line 1914 "pdo_user_sql_tokenizer.c" -yy307: +#line 1922 "pdo_user_sql_tokenizer.c" +yy309: yych = *++YYCURSOR; - if(yych == 'T') goto yy308; - if(yych != 't') goto yy69; -yy308: + if(yych == 'T') goto yy310; + if(yych != 't') goto yy71; +yy310: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 167 "pdo_user_sql_tokenizer.re" { RET(PU_GRANT); } -#line 1926 "pdo_user_sql_tokenizer.c" -yy310: - yych = *++YYCURSOR; - if(yych == 'D') goto yy344; - if(yych == 'd') goto yy344; - goto yy69; -yy311: - yych = *++YYCURSOR; - if(yych == 'T') goto yy340; - if(yych == 't') goto yy340; - goto yy69; +#line 1934 "pdo_user_sql_tokenizer.c" yy312: yych = *++YYCURSOR; - if(yych <= 'T') { - if(yych == 'L') goto yy335; - if(yych <= 'S') goto yy69; - goto yy334; - } else { - if(yych <= 'l') { - if(yych <= 'k') goto yy69; - goto yy335; - } else { - if(yych == 't') goto yy334; - goto yy69; - } - } + if(yych == 'D') goto yy346; + if(yych == 'd') goto yy346; + goto yy71; yy313: yych = *++YYCURSOR; - if(yych == 'D') goto yy332; - if(yych == 'd') goto yy332; - goto yy69; + if(yych == 'T') goto yy342; + if(yych == 't') goto yy342; + goto yy71; yy314: - ++YYCURSOR; - if((yych = *YYCURSOR) <= '^') { - if(yych <= '@') { - if(yych <= '/') goto yy315; - if(yych <= '9') goto yy68; - } else { - if(yych == 'C') goto yy330; - if(yych <= 'Z') goto yy68; - } + yych = *++YYCURSOR; + if(yych <= 'T') { + if(yych == 'L') goto yy337; + if(yych <= 'S') goto yy71; + goto yy336; } else { - if(yych <= 'b') { - if(yych != '`') goto yy68; + if(yych <= 'l') { + if(yych <= 'k') goto yy71; + goto yy337; } else { - if(yych <= 'c') goto yy330; - if(yych <= 'z') goto yy68; - if(yych >= 0x80) goto yy68; + if(yych == 't') goto yy336; + goto yy71; } } yy315: + yych = *++YYCURSOR; + if(yych == 'D') goto yy334; + if(yych == 'd') goto yy334; + goto yy71; +yy316: + ++YYCURSOR; + if((yych = *YYCURSOR) <= '^') { + if(yych <= '@') { + if(yych <= '/') goto yy317; + if(yych <= '9') goto yy70; + } else { + if(yych == 'C') goto yy332; + if(yych <= 'Z') goto yy70; + } + } else { + if(yych <= 'b') { + if(yych != '`') goto yy70; + } else { + if(yych <= 'c') goto yy332; + if(yych <= 'z') goto yy70; + if(yych >= 0x80) goto yy70; + } + } +yy317: #line 191 "pdo_user_sql_tokenizer.re" { RET(PU_AS); } -#line 1979 "pdo_user_sql_tokenizer.c" -yy316: - yych = *++YYCURSOR; - if(yych == 'T') goto yy317; - if(yych != 't') goto yy69; -yy317: - yych = *++YYCURSOR; - if(yych == 'O') goto yy318; - if(yych != 'o') goto yy69; +#line 1987 "pdo_user_sql_tokenizer.c" yy318: yych = *++YYCURSOR; - if(yych != '_') goto yy69; + if(yych == 'T') goto yy319; + if(yych != 't') goto yy71; +yy319: yych = *++YYCURSOR; - if(yych == 'I') goto yy320; - if(yych != 'i') goto yy69; + if(yych == 'O') goto yy320; + if(yych != 'o') goto yy71; yy320: yych = *++YYCURSOR; - if(yych == 'N') goto yy321; - if(yych != 'n') goto yy69; -yy321: + if(yych != '_') goto yy71; yych = *++YYCURSOR; - if(yych == 'C') goto yy322; - if(yych != 'c') goto yy69; + if(yych == 'I') goto yy322; + if(yych != 'i') goto yy71; yy322: yych = *++YYCURSOR; - if(yych == 'R') goto yy323; - if(yych != 'r') goto yy69; + if(yych == 'N') goto yy323; + if(yych != 'n') goto yy71; yy323: yych = *++YYCURSOR; - if(yych == 'E') goto yy324; - if(yych != 'e') goto yy69; + if(yych == 'C') goto yy324; + if(yych != 'c') goto yy71; yy324: yych = *++YYCURSOR; - if(yych == 'M') goto yy325; - if(yych != 'm') goto yy69; + if(yych == 'R') goto yy325; + if(yych != 'r') goto yy71; yy325: yych = *++YYCURSOR; if(yych == 'E') goto yy326; - if(yych != 'e') goto yy69; + if(yych != 'e') goto yy71; yy326: yych = *++YYCURSOR; - if(yych == 'N') goto yy327; - if(yych != 'n') goto yy69; + if(yych == 'M') goto yy327; + if(yych != 'm') goto yy71; yy327: yych = *++YYCURSOR; - if(yych == 'T') goto yy328; - if(yych != 't') goto yy69; + if(yych == 'E') goto yy328; + if(yych != 'e') goto yy71; yy328: - ++YYCURSOR; - if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; - } -#line 178 "pdo_user_sql_tokenizer.re" - { RET(PU_AUTO_INCREMENT); } -#line 2033 "pdo_user_sql_tokenizer.c" + yych = *++YYCURSOR; + if(yych == 'N') goto yy329; + if(yych != 'n') goto yy71; +yy329: + yych = *++YYCURSOR; + if(yych == 'T') goto yy330; + if(yych != 't') goto yy71; yy330: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } -#line 206 "pdo_user_sql_tokenizer.re" - { RET(PU_ASC); } +#line 178 "pdo_user_sql_tokenizer.re" + { RET(PU_AUTO_INCREMENT); } #line 2041 "pdo_user_sql_tokenizer.c" yy332: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; + } +#line 206 "pdo_user_sql_tokenizer.re" + { RET(PU_ASC); } +#line 2049 "pdo_user_sql_tokenizer.c" +yy334: + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 32) { + goto yy70; } #line 251 "pdo_user_sql_tokenizer.re" { RET(PU_AND); } -#line 2049 "pdo_user_sql_tokenizer.c" -yy334: +#line 2057 "pdo_user_sql_tokenizer.c" +yy336: yych = *++YYCURSOR; - if(yych == 'E') goto yy337; - if(yych == 'e') goto yy337; - goto yy69; -yy335: + if(yych == 'E') goto yy339; + if(yych == 'e') goto yy339; + goto yy71; +yy337: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 179 "pdo_user_sql_tokenizer.re" { RET(PU_ALL); } -#line 2062 "pdo_user_sql_tokenizer.c" -yy337: +#line 2070 "pdo_user_sql_tokenizer.c" +yy339: yych = *++YYCURSOR; - if(yych == 'R') goto yy338; - if(yych != 'r') goto yy69; -yy338: + if(yych == 'R') goto yy340; + if(yych != 'r') goto yy71; +yy340: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 166 "pdo_user_sql_tokenizer.re" { RET(PU_ALTER); } -#line 2074 "pdo_user_sql_tokenizer.c" -yy340: - yych = *++YYCURSOR; - if(yych == 'E') goto yy341; - if(yych != 'e') goto yy69; -yy341: - yych = *++YYCURSOR; - if(yych == 'R') goto yy342; - if(yych != 'r') goto yy69; +#line 2082 "pdo_user_sql_tokenizer.c" yy342: - ++YYCURSOR; - if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; - } -#line 197 "pdo_user_sql_tokenizer.re" - { RET(PU_AFTER); } -#line 2090 "pdo_user_sql_tokenizer.c" + yych = *++YYCURSOR; + if(yych == 'E') goto yy343; + if(yych != 'e') goto yy71; +yy343: + yych = *++YYCURSOR; + if(yych == 'R') goto yy344; + if(yych != 'r') goto yy71; yy344: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; + } +#line 197 "pdo_user_sql_tokenizer.re" + { RET(PU_AFTER); } +#line 2098 "pdo_user_sql_tokenizer.c" +yy346: + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 32) { + goto yy70; } #line 169 "pdo_user_sql_tokenizer.re" { RET(PU_ADD); } -#line 2098 "pdo_user_sql_tokenizer.c" -yy346: +#line 2106 "pdo_user_sql_tokenizer.c" +yy348: yych = *++YYCURSOR; if(yych <= 'V') { if(yych <= 'M') { - if(yych == 'A') goto yy359; - goto yy69; + if(yych == 'A') goto yy361; + goto yy71; } else { - if(yych <= 'N') goto yy357; - if(yych <= 'U') goto yy69; - goto yy358; + if(yych <= 'N') goto yy359; + if(yych <= 'U') goto yy71; + goto yy360; } } else { if(yych <= 'm') { - if(yych == 'a') goto yy359; - goto yy69; + if(yych == 'a') goto yy361; + goto yy71; } else { - if(yych <= 'n') goto yy357; - if(yych == 'v') goto yy358; - goto yy69; + if(yych <= 'n') goto yy359; + if(yych == 'v') goto yy360; + goto yy71; } } -yy347: - yych = *++YYCURSOR; - if(yych == 'G') goto yy353; - if(yych == 'g') goto yy353; - goto yy69; -yy348: - yych = *++YYCURSOR; - if(yych == 'I') goto yy349; - if(yych != 'i') goto yy69; yy349: yych = *++YYCURSOR; - if(yych == 'K') goto yy350; - if(yych != 'k') goto yy69; + if(yych == 'G') goto yy355; + if(yych == 'g') goto yy355; + goto yy71; yy350: yych = *++YYCURSOR; - if(yych == 'E') goto yy351; - if(yych != 'e') goto yy69; + if(yych == 'I') goto yy351; + if(yych != 'i') goto yy71; yy351: + yych = *++YYCURSOR; + if(yych == 'K') goto yy352; + if(yych != 'k') goto yy71; +yy352: + yych = *++YYCURSOR; + if(yych == 'E') goto yy353; + if(yych != 'e') goto yy71; +yy353: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 249 "pdo_user_sql_tokenizer.re" { RET(PU_RLIKE); } -#line 2144 "pdo_user_sql_tokenizer.c" -yy353: - yych = *++YYCURSOR; - if(yych == 'H') goto yy354; - if(yych != 'h') goto yy69; -yy354: - yych = *++YYCURSOR; - if(yych == 'T') goto yy355; - if(yych != 't') goto yy69; +#line 2152 "pdo_user_sql_tokenizer.c" yy355: + yych = *++YYCURSOR; + if(yych == 'H') goto yy356; + if(yych != 'h') goto yy71; +yy356: + yych = *++YYCURSOR; + if(yych == 'T') goto yy357; + if(yych != 't') goto yy71; +yy357: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 203 "pdo_user_sql_tokenizer.re" { RET(PU_RIGHT); } -#line 2160 "pdo_user_sql_tokenizer.c" -yy357: - yych = *++YYCURSOR; - if(yych == 'A') goto yy366; - if(yych == 'a') goto yy366; - goto yy69; -yy358: - yych = *++YYCURSOR; - if(yych == 'O') goto yy362; - if(yych == 'o') goto yy362; - goto yy69; +#line 2168 "pdo_user_sql_tokenizer.c" yy359: yych = *++YYCURSOR; - if(yych == 'L') goto yy360; - if(yych != 'l') goto yy69; + if(yych == 'A') goto yy368; + if(yych == 'a') goto yy368; + goto yy71; yy360: + yych = *++YYCURSOR; + if(yych == 'O') goto yy364; + if(yych == 'o') goto yy364; + goto yy71; +yy361: + yych = *++YYCURSOR; + if(yych == 'L') goto yy362; + if(yych != 'l') goto yy71; +yy362: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 228 "pdo_user_sql_tokenizer.re" { RET(PU_REAL); } -#line 2182 "pdo_user_sql_tokenizer.c" -yy362: - yych = *++YYCURSOR; - if(yych == 'K') goto yy363; - if(yych != 'k') goto yy69; -yy363: - yych = *++YYCURSOR; - if(yych == 'E') goto yy364; - if(yych != 'e') goto yy69; +#line 2190 "pdo_user_sql_tokenizer.c" yy364: + yych = *++YYCURSOR; + if(yych == 'K') goto yy365; + if(yych != 'k') goto yy71; +yy365: + yych = *++YYCURSOR; + if(yych == 'E') goto yy366; + if(yych != 'e') goto yy71; +yy366: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 168 "pdo_user_sql_tokenizer.re" { RET(PU_REVOKE); } -#line 2198 "pdo_user_sql_tokenizer.c" -yy366: - yych = *++YYCURSOR; - if(yych == 'M') goto yy367; - if(yych != 'm') goto yy69; -yy367: - yych = *++YYCURSOR; - if(yych == 'E') goto yy368; - if(yych != 'e') goto yy69; +#line 2206 "pdo_user_sql_tokenizer.c" yy368: + yych = *++YYCURSOR; + if(yych == 'M') goto yy369; + if(yych != 'm') goto yy71; +yy369: + yych = *++YYCURSOR; + if(yych == 'E') goto yy370; + if(yych != 'e') goto yy71; +yy370: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 165 "pdo_user_sql_tokenizer.re" { RET(PU_RENAME); } -#line 2214 "pdo_user_sql_tokenizer.c" -yy370: - yych = *++YYCURSOR; - if(yych == 'A') goto yy383; - if(yych == 'a') goto yy383; - goto yy69; -yy371: - yych = *++YYCURSOR; - if(yych == 'L') goto yy378; - if(yych == 'l') goto yy378; - goto yy69; +#line 2222 "pdo_user_sql_tokenizer.c" yy372: yych = *++YYCURSOR; - if(yych == 'E') goto yy373; - if(yych != 'e') goto yy69; + if(yych == 'A') goto yy385; + if(yych == 'a') goto yy385; + goto yy71; yy373: yych = *++YYCURSOR; - if(yych == 'A') goto yy374; - if(yych != 'a') goto yy69; + if(yych == 'L') goto yy380; + if(yych == 'l') goto yy380; + goto yy71; yy374: yych = *++YYCURSOR; - if(yych == 'T') goto yy375; - if(yych != 't') goto yy69; + if(yych == 'E') goto yy375; + if(yych != 'e') goto yy71; yy375: yych = *++YYCURSOR; - if(yych == 'E') goto yy376; - if(yych != 'e') goto yy69; + if(yych == 'A') goto yy376; + if(yych != 'a') goto yy71; yy376: + yych = *++YYCURSOR; + if(yych == 'T') goto yy377; + if(yych != 't') goto yy71; +yy377: + yych = *++YYCURSOR; + if(yych == 'E') goto yy378; + if(yych != 'e') goto yy71; +yy378: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 164 "pdo_user_sql_tokenizer.re" { RET(PU_CREATE); } -#line 2248 "pdo_user_sql_tokenizer.c" -yy378: - yych = *++YYCURSOR; - if(yych == 'U') goto yy379; - if(yych != 'u') goto yy69; -yy379: - yych = *++YYCURSOR; - if(yych == 'M') goto yy380; - if(yych != 'm') goto yy69; +#line 2256 "pdo_user_sql_tokenizer.c" yy380: yych = *++YYCURSOR; - if(yych == 'N') goto yy381; - if(yych != 'n') goto yy69; + if(yych == 'U') goto yy381; + if(yych != 'u') goto yy71; yy381: + yych = *++YYCURSOR; + if(yych == 'M') goto yy382; + if(yych != 'm') goto yy71; +yy382: + yych = *++YYCURSOR; + if(yych == 'N') goto yy383; + if(yych != 'n') goto yy71; +yy383: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 175 "pdo_user_sql_tokenizer.re" { RET(PU_COLUMN); } -#line 2268 "pdo_user_sql_tokenizer.c" -yy383: +#line 2276 "pdo_user_sql_tokenizer.c" +yy385: yych = *++YYCURSOR; - if(yych == 'R') goto yy384; - if(yych != 'r') goto yy69; -yy384: + if(yych == 'R') goto yy386; + if(yych != 'r') goto yy71; +yy386: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 219 "pdo_user_sql_tokenizer.re" { RET(PU_CHAR); } -#line 2280 "pdo_user_sql_tokenizer.c" -yy386: +#line 2288 "pdo_user_sql_tokenizer.c" +yy388: yych = *++YYCURSOR; - if(yych == 'T') goto yy426; - if(yych == 't') goto yy426; - goto yy69; -yy387: + if(yych == 'T') goto yy428; + if(yych == 't') goto yy428; + goto yy71; +yy389: yych = *++YYCURSOR; if(yych <= 'S') { if(yych <= 'F') { - if(yych == 'C') goto yy409; - if(yych <= 'E') goto yy69; - goto yy407; + if(yych == 'C') goto yy411; + if(yych <= 'E') goto yy71; + goto yy409; } else { - if(yych == 'L') goto yy406; - if(yych <= 'R') goto yy69; - goto yy408; + if(yych == 'L') goto yy408; + if(yych <= 'R') goto yy71; + goto yy410; } } else { if(yych <= 'f') { - if(yych == 'c') goto yy409; - if(yych <= 'e') goto yy69; - goto yy407; + if(yych == 'c') goto yy411; + if(yych <= 'e') goto yy71; + goto yy409; } else { if(yych <= 'l') { - if(yych <= 'k') goto yy69; - goto yy406; + if(yych <= 'k') goto yy71; + goto yy408; } else { - if(yych == 's') goto yy408; - goto yy69; + if(yych == 's') goto yy410; + goto yy71; } } } -yy388: - yych = *++YYCURSOR; - if(yych == 'S') goto yy399; - if(yych == 's') goto yy399; - goto yy69; -yy389: - yych = *++YYCURSOR; - if(yych == 'U') goto yy394; - if(yych == 'u') goto yy394; - goto yy69; yy390: yych = *++YYCURSOR; - if(yych == 'O') goto yy391; - if(yych != 'o') goto yy69; + if(yych == 'S') goto yy401; + if(yych == 's') goto yy401; + goto yy71; yy391: yych = *++YYCURSOR; - if(yych == 'P') goto yy392; - if(yych != 'p') goto yy69; + if(yych == 'U') goto yy396; + if(yych == 'u') goto yy396; + goto yy71; yy392: + yych = *++YYCURSOR; + if(yych == 'O') goto yy393; + if(yych != 'o') goto yy71; +yy393: + yych = *++YYCURSOR; + if(yych == 'P') goto yy394; + if(yych != 'p') goto yy71; +yy394: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 170 "pdo_user_sql_tokenizer.re" { RET(PU_DROP); } -#line 2338 "pdo_user_sql_tokenizer.c" -yy394: - yych = *++YYCURSOR; - if(yych == 'B') goto yy395; - if(yych != 'b') goto yy69; -yy395: - yych = *++YYCURSOR; - if(yych == 'L') goto yy396; - if(yych != 'l') goto yy69; +#line 2346 "pdo_user_sql_tokenizer.c" yy396: yych = *++YYCURSOR; - if(yych == 'E') goto yy397; - if(yych != 'e') goto yy69; + if(yych == 'B') goto yy397; + if(yych != 'b') goto yy71; yy397: + yych = *++YYCURSOR; + if(yych == 'L') goto yy398; + if(yych != 'l') goto yy71; +yy398: + yych = *++YYCURSOR; + if(yych == 'E') goto yy399; + if(yych != 'e') goto yy71; +yy399: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 229 "pdo_user_sql_tokenizer.re" { RET(PU_DOUBLE); } -#line 2358 "pdo_user_sql_tokenizer.c" -yy399: - yych = *++YYCURSOR; - if(yych == 'T') goto yy400; - if(yych != 't') goto yy69; -yy400: - yych = *++YYCURSOR; - if(yych == 'I') goto yy401; - if(yych != 'i') goto yy69; +#line 2366 "pdo_user_sql_tokenizer.c" yy401: yych = *++YYCURSOR; - if(yych == 'N') goto yy402; - if(yych != 'n') goto yy69; + if(yych == 'T') goto yy402; + if(yych != 't') goto yy71; yy402: yych = *++YYCURSOR; - if(yych == 'C') goto yy403; - if(yych != 'c') goto yy69; + if(yych == 'I') goto yy403; + if(yych != 'i') goto yy71; yy403: yych = *++YYCURSOR; - if(yych == 'T') goto yy404; - if(yych != 't') goto yy69; + if(yych == 'N') goto yy404; + if(yych != 'n') goto yy71; yy404: + yych = *++YYCURSOR; + if(yych == 'C') goto yy405; + if(yych != 'c') goto yy71; +yy405: + yych = *++YYCURSOR; + if(yych == 'T') goto yy406; + if(yych != 't') goto yy71; +yy406: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 199 "pdo_user_sql_tokenizer.re" { RET(PU_DISTINCT); } -#line 2386 "pdo_user_sql_tokenizer.c" -yy406: - yych = *++YYCURSOR; - if(yych == 'E') goto yy422; - if(yych == 'e') goto yy422; - goto yy69; -yy407: - yych = *++YYCURSOR; - if(yych == 'A') goto yy417; - if(yych == 'a') goto yy417; - goto yy69; +#line 2394 "pdo_user_sql_tokenizer.c" yy408: yych = *++YYCURSOR; - if(yych == 'C') goto yy415; - if(yych == 'c') goto yy415; - goto yy69; + if(yych == 'E') goto yy424; + if(yych == 'e') goto yy424; + goto yy71; yy409: yych = *++YYCURSOR; - if(yych == 'I') goto yy410; - if(yych != 'i') goto yy69; + if(yych == 'A') goto yy419; + if(yych == 'a') goto yy419; + goto yy71; yy410: yych = *++YYCURSOR; - if(yych == 'M') goto yy411; - if(yych != 'm') goto yy69; + if(yych == 'C') goto yy417; + if(yych == 'c') goto yy417; + goto yy71; yy411: yych = *++YYCURSOR; - if(yych == 'A') goto yy412; - if(yych != 'a') goto yy69; + if(yych == 'I') goto yy412; + if(yych != 'i') goto yy71; yy412: yych = *++YYCURSOR; - if(yych == 'L') goto yy413; - if(yych != 'l') goto yy69; + if(yych == 'M') goto yy413; + if(yych != 'm') goto yy71; yy413: - ++YYCURSOR; - if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; - } -#line 231 "pdo_user_sql_tokenizer.re" - { RET(PU_DECIMAL); } -#line 2425 "pdo_user_sql_tokenizer.c" + yych = *++YYCURSOR; + if(yych == 'A') goto yy414; + if(yych != 'a') goto yy71; +yy414: + yych = *++YYCURSOR; + if(yych == 'L') goto yy415; + if(yych != 'l') goto yy71; yy415: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; + } +#line 231 "pdo_user_sql_tokenizer.re" + { RET(PU_DECIMAL); } +#line 2433 "pdo_user_sql_tokenizer.c" +yy417: + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 32) { + goto yy70; } #line 207 "pdo_user_sql_tokenizer.re" { RET(PU_DESC); } -#line 2433 "pdo_user_sql_tokenizer.c" -yy417: - yych = *++YYCURSOR; - if(yych == 'U') goto yy418; - if(yych != 'u') goto yy69; -yy418: - yych = *++YYCURSOR; - if(yych == 'L') goto yy419; - if(yych != 'l') goto yy69; +#line 2441 "pdo_user_sql_tokenizer.c" yy419: yych = *++YYCURSOR; - if(yych == 'T') goto yy420; - if(yych != 't') goto yy69; + if(yych == 'U') goto yy420; + if(yych != 'u') goto yy71; yy420: + yych = *++YYCURSOR; + if(yych == 'L') goto yy421; + if(yych != 'l') goto yy71; +yy421: + yych = *++YYCURSOR; + if(yych == 'T') goto yy422; + if(yych != 't') goto yy71; +yy422: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 184 "pdo_user_sql_tokenizer.re" { RET(PU_DEFAULT); } -#line 2453 "pdo_user_sql_tokenizer.c" -yy422: - yych = *++YYCURSOR; - if(yych == 'T') goto yy423; - if(yych != 't') goto yy69; -yy423: - yych = *++YYCURSOR; - if(yych == 'E') goto yy424; - if(yych != 'e') goto yy69; +#line 2461 "pdo_user_sql_tokenizer.c" yy424: + yych = *++YYCURSOR; + if(yych == 'T') goto yy425; + if(yych != 't') goto yy71; +yy425: + yych = *++YYCURSOR; + if(yych == 'E') goto yy426; + if(yych != 'e') goto yy71; +yy426: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 163 "pdo_user_sql_tokenizer.re" { RET(PU_DELETE); } -#line 2469 "pdo_user_sql_tokenizer.c" -yy426: +#line 2477 "pdo_user_sql_tokenizer.c" +yy428: yych = *++YYCURSOR; - if(yych == 'E') goto yy427; - if(yych != 'e') goto yy69; -yy427: + if(yych == 'E') goto yy429; + if(yych != 'e') goto yy71; +yy429: ++YYCURSOR; if((yych = *YYCURSOR) <= '^') { if(yych <= '@') { - if(yych <= '/') goto yy428; - if(yych <= '9') goto yy68; + if(yych <= '/') goto yy430; + if(yych <= '9') goto yy70; } else { - if(yych == 'T') goto yy429; - if(yych <= 'Z') goto yy68; + if(yych == 'T') goto yy431; + if(yych <= 'Z') goto yy70; } } else { if(yych <= 's') { - if(yych != '`') goto yy68; + if(yych != '`') goto yy70; } else { - if(yych <= 't') goto yy429; - if(yych <= 'z') goto yy68; - if(yych >= 0x80) goto yy68; + if(yych <= 't') goto yy431; + if(yych <= 'z') goto yy70; + if(yych >= 0x80) goto yy70; } } -yy428: +yy430: #line 224 "pdo_user_sql_tokenizer.re" { RET(PU_DATE); } -#line 2496 "pdo_user_sql_tokenizer.c" -yy429: - yych = *++YYCURSOR; - if(yych == 'I') goto yy430; - if(yych != 'i') goto yy69; -yy430: - yych = *++YYCURSOR; - if(yych == 'M') goto yy431; - if(yych != 'm') goto yy69; +#line 2504 "pdo_user_sql_tokenizer.c" yy431: yych = *++YYCURSOR; - if(yych == 'E') goto yy432; - if(yych != 'e') goto yy69; + if(yych == 'I') goto yy432; + if(yych != 'i') goto yy71; yy432: + yych = *++YYCURSOR; + if(yych == 'M') goto yy433; + if(yych != 'm') goto yy71; +yy433: + yych = *++YYCURSOR; + if(yych == 'E') goto yy434; + if(yych != 'e') goto yy71; +yy434: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 223 "pdo_user_sql_tokenizer.re" { RET(PU_DATETIME); } -#line 2516 "pdo_user_sql_tokenizer.c" -yy434: - yych = *++YYCURSOR; - if(yych <= 'S') { - if(yych == 'I') goto yy441; - if(yych <= 'R') goto yy69; - goto yy442; - } else { - if(yych <= 'i') { - if(yych <= 'h') goto yy69; - goto yy441; - } else { - if(yych == 's') goto yy442; - goto yy69; - } - } -yy435: - yych = *++YYCURSOR; - if(yych == 'D') goto yy436; - if(yych != 'd') goto yy69; +#line 2524 "pdo_user_sql_tokenizer.c" yy436: yych = *++YYCURSOR; - if(yych == 'A') goto yy437; - if(yych != 'a') goto yy69; + if(yych <= 'S') { + if(yych == 'I') goto yy443; + if(yych <= 'R') goto yy71; + goto yy444; + } else { + if(yych <= 'i') { + if(yych <= 'h') goto yy71; + goto yy443; + } else { + if(yych == 's') goto yy444; + goto yy71; + } + } yy437: yych = *++YYCURSOR; - if(yych == 'T') goto yy438; - if(yych != 't') goto yy69; + if(yych == 'D') goto yy438; + if(yych != 'd') goto yy71; yy438: yych = *++YYCURSOR; - if(yych == 'E') goto yy439; - if(yych != 'e') goto yy69; + if(yych == 'A') goto yy439; + if(yych != 'a') goto yy71; yy439: + yych = *++YYCURSOR; + if(yych == 'T') goto yy440; + if(yych != 't') goto yy71; +yy440: + yych = *++YYCURSOR; + if(yych == 'E') goto yy441; + if(yych != 'e') goto yy71; +yy441: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 162 "pdo_user_sql_tokenizer.re" { RET(PU_UPDATE); } -#line 2555 "pdo_user_sql_tokenizer.c" -yy441: - yych = *++YYCURSOR; - if(yych == 'Q') goto yy449; - if(yych == 'q') goto yy449; - goto yy69; -yy442: - yych = *++YYCURSOR; - if(yych == 'I') goto yy443; - if(yych != 'i') goto yy69; +#line 2563 "pdo_user_sql_tokenizer.c" yy443: yych = *++YYCURSOR; - if(yych == 'G') goto yy444; - if(yych != 'g') goto yy69; + if(yych == 'Q') goto yy451; + if(yych == 'q') goto yy451; + goto yy71; yy444: yych = *++YYCURSOR; - if(yych == 'N') goto yy445; - if(yych != 'n') goto yy69; + if(yych == 'I') goto yy445; + if(yych != 'i') goto yy71; yy445: yych = *++YYCURSOR; - if(yych == 'E') goto yy446; - if(yych != 'e') goto yy69; + if(yych == 'G') goto yy446; + if(yych != 'g') goto yy71; yy446: yych = *++YYCURSOR; - if(yych == 'D') goto yy447; - if(yych != 'd') goto yy69; + if(yych == 'N') goto yy447; + if(yych != 'n') goto yy71; yy447: + yych = *++YYCURSOR; + if(yych == 'E') goto yy448; + if(yych != 'e') goto yy71; +yy448: + yych = *++YYCURSOR; + if(yych == 'D') goto yy449; + if(yych != 'd') goto yy71; +yy449: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 208 "pdo_user_sql_tokenizer.re" { RET(PU_UNSIGNED); } -#line 2588 "pdo_user_sql_tokenizer.c" -yy449: - yych = *++YYCURSOR; - if(yych == 'U') goto yy450; - if(yych != 'u') goto yy69; -yy450: - yych = *++YYCURSOR; - if(yych == 'E') goto yy451; - if(yych != 'e') goto yy69; +#line 2596 "pdo_user_sql_tokenizer.c" yy451: + yych = *++YYCURSOR; + if(yych == 'U') goto yy452; + if(yych != 'u') goto yy71; +yy452: + yych = *++YYCURSOR; + if(yych == 'E') goto yy453; + if(yych != 'e') goto yy71; +yy453: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 194 "pdo_user_sql_tokenizer.re" { RET(PU_UNIQUE); } -#line 2604 "pdo_user_sql_tokenizer.c" -yy453: +#line 2612 "pdo_user_sql_tokenizer.c" +yy455: yych = *++YYCURSOR; - if(yych == 'E') goto yy473; - if(yych == 'e') goto yy473; - goto yy69; -yy454: + if(yych == 'E') goto yy475; + if(yych == 'e') goto yy475; + goto yy71; +yy456: yych = *++YYCURSOR; if(yych <= 'T') { if(yych <= 'N') { - if(yych <= 'M') goto yy69; - goto yy458; + if(yych <= 'M') goto yy71; + goto yy460; } else { - if(yych <= 'R') goto yy69; - if(yych >= 'T') goto yy456; + if(yych <= 'R') goto yy71; + if(yych >= 'T') goto yy458; } } else { if(yych <= 'r') { - if(yych == 'n') goto yy458; - goto yy69; + if(yych == 'n') goto yy460; + goto yy71; } else { - if(yych <= 's') goto yy455; - if(yych <= 't') goto yy456; - goto yy69; + if(yych <= 's') goto yy457; + if(yych <= 't') goto yy458; + goto yy71; } } -yy455: +yy457: yych = *++YYCURSOR; - if(yych == 'E') goto yy469; - if(yych == 'e') goto yy469; - goto yy69; -yy456: + if(yych == 'E') goto yy471; + if(yych == 'e') goto yy471; + goto yy71; +yy458: ++YYCURSOR; if((yych = *YYCURSOR) <= '^') { if(yych <= 'D') { - if(yych <= '/') goto yy457; - if(yych <= '9') goto yy68; - if(yych >= 'A') goto yy68; + if(yych <= '/') goto yy459; + if(yych <= '9') goto yy70; + if(yych >= 'A') goto yy70; } else { if(yych <= 'N') { - if(yych <= 'E') goto yy462; - goto yy68; + if(yych <= 'E') goto yy464; + goto yy70; } else { - if(yych <= 'O') goto yy463; - if(yych <= 'Z') goto yy68; + if(yych <= 'O') goto yy465; + if(yych <= 'Z') goto yy70; } } } else { if(yych <= 'e') { - if(yych == '`') goto yy457; - if(yych <= 'd') goto yy68; - goto yy462; + if(yych == '`') goto yy459; + if(yych <= 'd') goto yy70; + goto yy464; } else { if(yych <= 'o') { - if(yych <= 'n') goto yy68; - goto yy463; + if(yych <= 'n') goto yy70; + goto yy465; } else { - if(yych <= 'z') goto yy68; - if(yych >= 0x80) goto yy68; + if(yych <= 'z') goto yy70; + if(yych >= 0x80) goto yy70; } } } -yy457: +yy459: #line 213 "pdo_user_sql_tokenizer.re" { RET(PU_INT); } -#line 2669 "pdo_user_sql_tokenizer.c" -yy458: - yych = *++YYCURSOR; - if(yych == 'E') goto yy459; - if(yych != 'e') goto yy69; -yy459: - yych = *++YYCURSOR; - if(yych == 'R') goto yy460; - if(yych != 'r') goto yy69; +#line 2677 "pdo_user_sql_tokenizer.c" yy460: + yych = *++YYCURSOR; + if(yych == 'E') goto yy461; + if(yych != 'e') goto yy71; +yy461: + yych = *++YYCURSOR; + if(yych == 'R') goto yy462; + if(yych != 'r') goto yy71; +yy462: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 200 "pdo_user_sql_tokenizer.re" { RET(PU_INNER); } -#line 2685 "pdo_user_sql_tokenizer.c" -yy462: +#line 2693 "pdo_user_sql_tokenizer.c" +yy464: yych = *++YYCURSOR; - if(yych == 'G') goto yy465; - if(yych == 'g') goto yy465; - goto yy69; -yy463: + if(yych == 'G') goto yy467; + if(yych == 'g') goto yy467; + goto yy71; +yy465: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 182 "pdo_user_sql_tokenizer.re" { RET(PU_INTO); } -#line 2698 "pdo_user_sql_tokenizer.c" -yy465: - yych = *++YYCURSOR; - if(yych == 'E') goto yy466; - if(yych != 'e') goto yy69; -yy466: - yych = *++YYCURSOR; - if(yych == 'R') goto yy467; - if(yych != 'r') goto yy69; +#line 2706 "pdo_user_sql_tokenizer.c" yy467: + yych = *++YYCURSOR; + if(yych == 'E') goto yy468; + if(yych != 'e') goto yy71; +yy468: + yych = *++YYCURSOR; + if(yych == 'R') goto yy469; + if(yych != 'r') goto yy71; +yy469: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 214 "pdo_user_sql_tokenizer.re" { RET(PU_INTEGER); } -#line 2714 "pdo_user_sql_tokenizer.c" -yy469: - yych = *++YYCURSOR; - if(yych == 'R') goto yy470; - if(yych != 'r') goto yy69; -yy470: - yych = *++YYCURSOR; - if(yych == 'T') goto yy471; - if(yych != 't') goto yy69; +#line 2722 "pdo_user_sql_tokenizer.c" yy471: + yych = *++YYCURSOR; + if(yych == 'R') goto yy472; + if(yych != 'r') goto yy71; +yy472: + yych = *++YYCURSOR; + if(yych == 'T') goto yy473; + if(yych != 't') goto yy71; +yy473: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 161 "pdo_user_sql_tokenizer.re" { RET(PU_INSERT); } -#line 2730 "pdo_user_sql_tokenizer.c" -yy473: - yych = *++YYCURSOR; - if(yych == 'N') goto yy474; - if(yych != 'n') goto yy69; -yy474: - yych = *++YYCURSOR; - if(yych == 'T') goto yy475; - if(yych != 't') goto yy69; +#line 2738 "pdo_user_sql_tokenizer.c" yy475: yych = *++YYCURSOR; - if(yych == 'I') goto yy476; - if(yych != 'i') goto yy69; + if(yych == 'N') goto yy476; + if(yych != 'n') goto yy71; yy476: yych = *++YYCURSOR; - if(yych == 'F') goto yy477; - if(yych != 'f') goto yy69; + if(yych == 'T') goto yy477; + if(yych != 't') goto yy71; yy477: yych = *++YYCURSOR; if(yych == 'I') goto yy478; - if(yych != 'i') goto yy69; + if(yych != 'i') goto yy71; yy478: yych = *++YYCURSOR; - if(yych == 'E') goto yy479; - if(yych != 'e') goto yy69; + if(yych == 'F') goto yy479; + if(yych != 'f') goto yy71; yy479: yych = *++YYCURSOR; - if(yych == 'D') goto yy480; - if(yych != 'd') goto yy69; + if(yych == 'I') goto yy480; + if(yych != 'i') goto yy71; yy480: + yych = *++YYCURSOR; + if(yych == 'E') goto yy481; + if(yych != 'e') goto yy71; +yy481: + yych = *++YYCURSOR; + if(yych == 'D') goto yy482; + if(yych != 'd') goto yy71; +yy482: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 198 "pdo_user_sql_tokenizer.re" { RET(PU_IDENTIFIED); } -#line 2766 "pdo_user_sql_tokenizer.c" -yy482: +#line 2774 "pdo_user_sql_tokenizer.c" +yy484: yych = *++YYCURSOR; if(yych <= 'T') { - if(yych == 'L') goto yy493; - if(yych <= 'S') goto yy69; - goto yy494; + if(yych == 'L') goto yy495; + if(yych <= 'S') goto yy71; + goto yy496; } else { if(yych <= 'l') { - if(yych <= 'k') goto yy69; - goto yy493; + if(yych <= 'k') goto yy71; + goto yy495; } else { - if(yych == 't') goto yy494; - goto yy69; + if(yych == 't') goto yy496; + goto yy71; } } -yy483: +yy485: yych = *++YYCURSOR; - if(yych == 'A') goto yy486; - if(yych == 'a') goto yy486; - goto yy69; -yy484: + if(yych == 'A') goto yy488; + if(yych == 'a') goto yy488; + goto yy71; +yy486: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yybm[0+yych] & 128) { - goto yy484; + goto yy486; } if(yych <= '9') { if(yych <= 0x0D) { if(yych <= 0x08) goto yy6; - if(yych <= 0x0A) goto yy62; + if(yych <= 0x0A) goto yy64; if(yych <= 0x0C) goto yy6; - goto yy62; + goto yy64; } else { - if(yych == ' ') goto yy62; + if(yych == ' ') goto yy64; if(yych <= '/') goto yy6; - goto yy68; + goto yy70; } } else { if(yych <= '_') { if(yych <= '@') goto yy6; - if(yych <= 'Z') goto yy68; + if(yych <= 'Z') goto yy70; if(yych <= '^') goto yy6; - goto yy68; + goto yy70; } else { if(yych <= '`') goto yy6; - if(yych <= 'z') goto yy68; + if(yych <= 'z') goto yy70; if(yych <= 0x7F) goto yy6; - goto yy68; + goto yy70; } } -yy486: - yych = *++YYCURSOR; - if(yych == 'L') goto yy487; - if(yych != 'l') goto yy69; -yy487: - yych = *++YYCURSOR; - if(yych == 'L') goto yy488; - if(yych != 'l') goto yy69; yy488: yych = *++YYCURSOR; - if(yych == 'I') goto yy489; - if(yych != 'i') goto yy69; + if(yych == 'L') goto yy489; + if(yych != 'l') goto yy71; yy489: yych = *++YYCURSOR; - if(yych == 'N') goto yy490; - if(yych != 'n') goto yy69; + if(yych == 'L') goto yy490; + if(yych != 'l') goto yy71; yy490: yych = *++YYCURSOR; - if(yych == 'T') goto yy491; - if(yych != 't') goto yy69; + if(yych == 'I') goto yy491; + if(yych != 'i') goto yy71; yy491: + yych = *++YYCURSOR; + if(yych == 'N') goto yy492; + if(yych != 'n') goto yy71; +yy492: + yych = *++YYCURSOR; + if(yych == 'T') goto yy493; + if(yych != 't') goto yy71; +yy493: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 216 "pdo_user_sql_tokenizer.re" { RET(PU_SMALLINT); } -#line 2845 "pdo_user_sql_tokenizer.c" -yy493: +#line 2853 "pdo_user_sql_tokenizer.c" +yy495: yych = *++YYCURSOR; - if(yych == 'E') goto yy496; - if(yych == 'e') goto yy496; - goto yy69; -yy494: + if(yych == 'E') goto yy498; + if(yych == 'e') goto yy498; + goto yy71; +yy496: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 240 "pdo_user_sql_tokenizer.re" { RET(PU_SET); } -#line 2858 "pdo_user_sql_tokenizer.c" -yy496: - yych = *++YYCURSOR; - if(yych == 'C') goto yy497; - if(yych != 'c') goto yy69; -yy497: - yych = *++YYCURSOR; - if(yych == 'T') goto yy498; - if(yych != 't') goto yy69; +#line 2866 "pdo_user_sql_tokenizer.c" yy498: + yych = *++YYCURSOR; + if(yych == 'C') goto yy499; + if(yych != 'c') goto yy71; +yy499: + yych = *++YYCURSOR; + if(yych == 'T') goto yy500; + if(yych != 't') goto yy71; +yy500: ++YYCURSOR; if(yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy68; + goto yy70; } #line 160 "pdo_user_sql_tokenizer.re" { RET(PU_SELECT); } -#line 2874 "pdo_user_sql_tokenizer.c" +#line 2882 "pdo_user_sql_tokenizer.c" } } -#line 277 "pdo_user_sql_tokenizer.re" +#line 278 "pdo_user_sql_tokenizer.re" } diff --git a/pdo_user_sql_tokenizer.re b/pdo_user_sql_tokenizer.re index 33c98c5..ba570ef 100644 --- a/pdo_user_sql_tokenizer.re +++ b/pdo_user_sql_tokenizer.re @@ -152,7 +152,7 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t LNUMS = [0-9]; HNUMS = [0-9A-Fa-f]; LABELCHAR = [0-9a-zA-Z_\200-\377]; - LABELSTART = [a-zA-Z_\200-\377]; + LABELSTART = [a-zA-Z_:\200-\377]; ANYNOEOF = [\001-\377]; EOF = [\000]; @@ -264,6 +264,7 @@ int php_pdo_user_sql_get_token(php_pdo_user_sql_tokenizer *t, php_pdo_user_sql_t [=] { RET(PU_EQUALS); } [;] { RET(PU_SEMICOLON); } [.] { RET(PU_DOT); } + [:] { RET(PU_COLON); } ([`] (ESCBT|ESCSEQ|ANYNOEOF\[\\`])* [`]){ RET_UNESC(PU_LABEL); } (["] (ESCQQ|ESCSEQ|ANYNOEOF\[\\"])* ["]){ RET_UNESC(PU_STRING); } diff --git a/tests/parser.phpt b/tests/parser.phpt new file mode 100644 index 0000000..8c9c894 --- /dev/null +++ b/tests/parser.phpt @@ -0,0 +1,103 @@ +--TEST-- +SQL Parser +--SKIPIF-- + +--FILE-- + statement + [statement] => select + [fields] => Array + ( + [0] => foo + ) + + [from] => bar + [modifiers] => + [terminating-semicolon] => +) +string(43) "INSERT INTO bar (foo,baz) values(1,2),(2,3)" +Array +( + [type] => statement + [statement] => insert + [table] => bar + [fields] => Array + ( + [0] => foo + [1] => baz + ) + + [data] => Array + ( + [0] => Array + ( + [0] => 1 + [1] => 2 + ) + + [1] => Array + ( + [0] => 2 + [1] => 3 + ) + + ) + + [terminating-semicolon] => +) +string(65) "SELECT *,bar.*,db.bar.* FROM bar WHERE `select` = `\x41BC \06123`" +Array +( + [type] => statement + [statement] => select + [fields] => Array + ( + [0] => * + [1] => Array + ( + [table] => bar + [field] => * + ) + + [2] => Array + ( + [database] => db + [table] => bar + [field] => * + ) + + ) + + [from] => bar + [modifiers] => Array + ( + [where] => Array + ( + [type] => condition + [op1] => select + [condition] => = + [op2] => ABC 123 + ) + + ) + + [terminating-semicolon] => +)