Kouhei Sutou
null+****@clear*****
Wed Oct 24 14:04:11 JST 2012
Kouhei Sutou 2012-10-24 14:04:11 +0900 (Wed, 24 Oct 2012) New Revision: de0575f79691ffe283197fc824c9a85605f73f4b https://github.com/groonga/groonga/commit/de0575f79691ffe283197fc824c9a85605f73f4b Log: output_columns: support "_id, nonexistent_column" case Added files: test/command/suite/select/output_columns/none.expected test/command/suite/select/output_columns/none.test test/command/suite/select/output_columns/nonexistent/all.expected test/command/suite/select/output_columns/nonexistent/all.test test/command/suite/select/output_columns/nonexistent/first.expected test/command/suite/select/output_columns/nonexistent/first.test test/command/suite/select/output_columns/nonexistent/last.expected test/command/suite/select/output_columns/nonexistent/last.test test/command/suite/select/output_columns/nonexistent/middle.expected test/command/suite/select/output_columns/nonexistent/middle.test test/command/suite/select/output_columns/nonexistent/only.expected test/command/suite/select/output_columns/nonexistent/only.test test/command/suite/select/output_columns/star/first.expected test/command/suite/select/output_columns/star/first.test test/command/suite/select/output_columns/star/last.expected test/command/suite/select/output_columns/star/last.test test/command/suite/select/output_columns/star/middle.expected test/command/suite/select/output_columns/star/middle.test test/command/suite/select/output_columns/star/no_column/first.expected test/command/suite/select/output_columns/star/no_column/first.test test/command/suite/select/output_columns/star/no_column/last.expected test/command/suite/select/output_columns/star/no_column/last.test test/command/suite/select/output_columns/star/no_column/middle.expected test/command/suite/select/output_columns/star/no_column/middle.test test/command/suite/select/output_columns/star/no_column/only.expected test/command/suite/select/output_columns/star/no_column/only.test test/command/suite/select/output_columns/star/only.expected test/command/suite/select/output_columns/star/only.test Modified files: include/groonga.h lib/ecmascript.c lib/ecmascript.h lib/ecmascript.y lib/expr.c lib/output.c Modified: include/groonga.h (+1 -2) =================================================================== --- include/groonga.h 2012-10-24 12:42:58 +0900 (a10fc5f) +++ include/groonga.h 2012-10-24 14:04:11 +0900 (ce0efc6) @@ -1178,8 +1178,7 @@ typedef enum { GRN_OP_TABLE_SELECT, GRN_OP_TABLE_SORT, GRN_OP_TABLE_GROUP, - GRN_OP_JSON_PUT, - GRN_OP_ALL_COLUMNS + GRN_OP_JSON_PUT } grn_operator; struct _grn_table_group_result { Modified: lib/ecmascript.c (+644 -565) =================================================================== --- lib/ecmascript.c 2012-10-24 12:42:58 +0900 (abeedfb) +++ lib/ecmascript.c 2012-10-24 14:04:11 +0900 (83888d3) @@ -58,7 +58,7 @@ ** defined, then do no error processing. */ #define YYCODETYPE unsigned char -#define YYNOCODE 107 +#define YYNOCODE 108 #define YYACTIONTYPE unsigned short int #define grn_expr_parserTOKENTYPE int typedef union { @@ -72,8 +72,8 @@ typedef union { #define grn_expr_parserARG_PDECL , efs_info *efsi #define grn_expr_parserARG_FETCH efs_info *efsi = yypParser->efsi #define grn_expr_parserARG_STORE yypParser->efsi = efsi -#define YYNSTATE 211 -#define YYNRULE 122 +#define YYNSTATE 212 +#define YYNRULE 124 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) @@ -142,423 +142,421 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ -#define YY_ACTTAB_COUNT (1762) +#define YY_ACTTAB_COUNT (1756) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 334, 74, 104, 76, 207, 177, 180, 201, 82, 118, - /* 10 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 166, - /* 20 */ 197, 183, 72, 2, 25, 176, 172, 208, 1, 32, - /* 30 */ 77, 120, 4, 33, 69, 73, 110, 138, 207, 177, - /* 40 */ 180, 201, 82, 118, 117, 126, 125, 124, 112, 83, - /* 50 */ 96, 108, 97, 166, 197, 183, 72, 176, 172, 176, - /* 60 */ 172, 208, 1, 34, 77, 120, 4, 24, 69, 6, + /* 0 */ 337, 74, 104, 76, 208, 178, 181, 202, 82, 118, + /* 10 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 167, + /* 20 */ 198, 184, 72, 2, 25, 177, 173, 209, 1, 32, + /* 30 */ 77, 120, 4, 33, 69, 73, 110, 139, 208, 178, + /* 40 */ 181, 202, 82, 118, 117, 126, 125, 124, 112, 83, + /* 50 */ 96, 108, 97, 167, 198, 184, 72, 177, 173, 177, + /* 60 */ 173, 209, 1, 34, 77, 120, 4, 24, 69, 6, /* 70 */ 29, 64, 63, 52, 51, 50, 67, 66, 65, 62, - /* 80 */ 61, 60, 59, 58, 57, 171, 170, 169, 168, 167, - /* 90 */ 3, 7, 26, 153, 173, 81, 208, 70, 164, 77, - /* 100 */ 131, 9, 175, 69, 107, 64, 63, 203, 28, 28, - /* 110 */ 67, 66, 65, 62, 61, 60, 59, 58, 57, 171, - /* 120 */ 170, 169, 168, 167, 3, 7, 31, 30, 173, 81, - /* 130 */ 152, 8, 164, 122, 64, 63, 23, 36, 35, 67, - /* 140 */ 66, 65, 62, 61, 60, 59, 58, 57, 171, 170, - /* 150 */ 169, 168, 167, 3, 165, 49, 48, 47, 46, 45, - /* 160 */ 44, 43, 42, 41, 40, 39, 38, 37, 64, 63, - /* 170 */ 54, 53, 10, 67, 66, 65, 62, 61, 60, 59, - /* 180 */ 58, 57, 171, 170, 169, 168, 167, 3, 158, 119, - /* 190 */ 185, 184, 177, 180, 201, 82, 118, 117, 126, 125, - /* 200 */ 124, 112, 83, 96, 108, 97, 166, 197, 183, 72, - /* 210 */ 161, 123, 176, 172, 159, 28, 107, 177, 154, 201, - /* 220 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, - /* 230 */ 97, 166, 197, 183, 72, 209, 206, 176, 172, 11, - /* 240 */ 80, 68, 56, 55, 103, 335, 177, 133, 201, 82, - /* 250 */ 118, 117, 126, 125, 124, 112, 83, 96, 108, 97, - /* 260 */ 166, 197, 183, 72, 155, 205, 176, 172, 159, 204, - /* 270 */ 159, 179, 119, 137, 132, 177, 180, 201, 82, 118, - /* 280 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 166, - /* 290 */ 197, 183, 72, 210, 113, 176, 172, 177, 180, 201, - /* 300 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, - /* 310 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 110, - /* 320 */ 156, 335, 177, 180, 201, 82, 118, 117, 126, 125, - /* 330 */ 124, 112, 83, 96, 108, 97, 166, 197, 183, 72, - /* 340 */ 335, 335, 176, 172, 177, 150, 201, 82, 118, 117, - /* 350 */ 126, 125, 124, 112, 83, 96, 108, 97, 166, 197, - /* 360 */ 183, 72, 335, 7, 176, 172, 173, 81, 182, 181, - /* 370 */ 335, 106, 177, 133, 201, 82, 118, 117, 126, 125, - /* 380 */ 124, 112, 83, 96, 108, 97, 166, 197, 183, 72, - /* 390 */ 212, 7, 176, 172, 173, 81, 213, 162, 155, 71, - /* 400 */ 135, 73, 335, 28, 207, 335, 64, 63, 134, 5, - /* 410 */ 335, 67, 66, 65, 62, 61, 60, 59, 58, 57, - /* 420 */ 171, 170, 169, 168, 167, 3, 7, 335, 335, 173, - /* 430 */ 81, 335, 335, 335, 64, 63, 335, 335, 335, 67, - /* 440 */ 66, 65, 62, 61, 60, 59, 58, 57, 171, 170, - /* 450 */ 169, 168, 167, 3, 211, 335, 79, 78, 75, 208, - /* 460 */ 70, 335, 77, 131, 9, 335, 69, 335, 335, 64, - /* 470 */ 63, 335, 335, 335, 67, 66, 65, 62, 61, 60, - /* 480 */ 59, 58, 57, 171, 170, 169, 168, 167, 3, 177, - /* 490 */ 202, 201, 82, 118, 117, 126, 125, 124, 112, 83, - /* 500 */ 96, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 510 */ 172, 335, 177, 200, 201, 82, 118, 117, 126, 125, - /* 520 */ 124, 112, 83, 96, 108, 97, 166, 197, 183, 72, - /* 530 */ 335, 335, 176, 172, 335, 79, 78, 75, 208, 70, - /* 540 */ 136, 77, 131, 9, 335, 69, 335, 177, 130, 201, - /* 550 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, - /* 560 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 177, - /* 570 */ 199, 201, 82, 118, 117, 126, 125, 124, 112, 83, - /* 580 */ 96, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 590 */ 172, 177, 160, 201, 82, 118, 117, 126, 125, 124, - /* 600 */ 112, 83, 96, 108, 97, 166, 197, 183, 72, 335, - /* 610 */ 335, 176, 172, 335, 335, 335, 335, 335, 335, 335, - /* 620 */ 335, 335, 335, 335, 335, 177, 151, 201, 82, 118, - /* 630 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 166, - /* 640 */ 197, 183, 72, 335, 335, 176, 172, 177, 149, 201, - /* 650 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, - /* 660 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 177, - /* 670 */ 148, 201, 82, 118, 117, 126, 125, 124, 112, 83, - /* 680 */ 96, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 690 */ 172, 335, 335, 335, 335, 335, 335, 335, 335, 335, - /* 700 */ 335, 335, 335, 177, 147, 201, 82, 118, 117, 126, - /* 710 */ 125, 124, 112, 83, 96, 108, 97, 166, 197, 183, - /* 720 */ 72, 335, 335, 176, 172, 177, 146, 201, 82, 118, - /* 730 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 166, - /* 740 */ 197, 183, 72, 335, 335, 176, 172, 177, 145, 201, - /* 750 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, - /* 760 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 335, - /* 770 */ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - /* 780 */ 335, 177, 144, 201, 82, 118, 117, 126, 125, 124, - /* 790 */ 112, 83, 96, 108, 97, 166, 197, 183, 72, 335, - /* 800 */ 335, 176, 172, 177, 143, 201, 82, 118, 117, 126, - /* 810 */ 125, 124, 112, 83, 96, 108, 97, 166, 197, 183, - /* 820 */ 72, 335, 335, 176, 172, 177, 142, 201, 82, 118, - /* 830 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 166, - /* 840 */ 197, 183, 72, 335, 335, 176, 172, 335, 335, 335, - /* 850 */ 335, 335, 335, 335, 335, 335, 335, 335, 335, 177, - /* 860 */ 141, 201, 82, 118, 117, 126, 125, 124, 112, 83, - /* 870 */ 96, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 880 */ 172, 177, 140, 201, 82, 118, 117, 126, 125, 124, - /* 890 */ 112, 83, 96, 108, 97, 166, 197, 183, 72, 335, - /* 900 */ 335, 176, 172, 177, 139, 201, 82, 118, 117, 126, - /* 910 */ 125, 124, 112, 83, 96, 108, 97, 166, 197, 183, - /* 920 */ 72, 335, 335, 176, 172, 335, 335, 335, 335, 335, - /* 930 */ 335, 335, 335, 335, 335, 335, 335, 177, 163, 201, - /* 940 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, - /* 950 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 177, - /* 960 */ 157, 201, 82, 118, 117, 126, 125, 124, 112, 83, - /* 970 */ 96, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 980 */ 172, 177, 335, 335, 114, 335, 105, 126, 125, 124, - /* 990 */ 112, 83, 96, 108, 97, 166, 197, 183, 72, 335, - /* 1000 */ 335, 176, 172, 335, 335, 335, 335, 335, 335, 335, - /* 1010 */ 335, 335, 335, 335, 335, 177, 335, 335, 114, 335, - /* 1020 */ 335, 129, 125, 124, 112, 83, 96, 108, 97, 166, - /* 1030 */ 197, 183, 72, 335, 335, 176, 172, 177, 335, 335, - /* 1040 */ 114, 335, 335, 121, 125, 124, 112, 83, 96, 108, - /* 1050 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 177, - /* 1060 */ 335, 335, 114, 335, 335, 335, 128, 124, 112, 83, - /* 1070 */ 96, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 1080 */ 172, 27, 22, 21, 20, 19, 18, 17, 16, 15, - /* 1090 */ 14, 13, 12, 177, 335, 335, 114, 335, 335, 335, - /* 1100 */ 335, 127, 112, 83, 96, 108, 97, 166, 197, 183, - /* 1110 */ 72, 335, 335, 176, 172, 177, 335, 335, 114, 335, - /* 1120 */ 335, 335, 185, 184, 116, 83, 96, 108, 97, 166, - /* 1130 */ 197, 183, 72, 335, 335, 176, 172, 177, 335, 335, - /* 1140 */ 114, 335, 335, 335, 335, 335, 335, 85, 96, 108, - /* 1150 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 177, - /* 1160 */ 335, 335, 114, 335, 335, 335, 335, 335, 335, 84, - /* 1170 */ 96, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 1180 */ 172, 177, 335, 335, 114, 335, 335, 335, 335, 335, - /* 1190 */ 335, 335, 102, 108, 97, 166, 197, 183, 72, 335, - /* 1200 */ 177, 176, 172, 114, 335, 335, 335, 335, 335, 335, - /* 1210 */ 335, 100, 108, 97, 166, 197, 183, 72, 335, 335, - /* 1220 */ 176, 172, 335, 335, 335, 177, 335, 335, 114, 335, - /* 1230 */ 335, 335, 335, 335, 335, 335, 98, 108, 97, 166, - /* 1240 */ 197, 183, 72, 335, 335, 176, 172, 177, 335, 335, - /* 1250 */ 114, 335, 335, 335, 335, 335, 335, 335, 95, 108, - /* 1260 */ 97, 166, 197, 183, 72, 335, 335, 176, 172, 335, - /* 1270 */ 177, 335, 335, 114, 335, 335, 335, 335, 335, 335, - /* 1280 */ 335, 94, 108, 97, 166, 197, 183, 72, 335, 177, - /* 1290 */ 176, 172, 114, 335, 335, 335, 335, 335, 335, 335, - /* 1300 */ 93, 108, 97, 166, 197, 183, 72, 335, 335, 176, - /* 1310 */ 172, 335, 335, 335, 177, 335, 335, 114, 335, 335, - /* 1320 */ 335, 335, 335, 335, 335, 92, 108, 97, 166, 197, - /* 1330 */ 183, 72, 335, 335, 176, 172, 177, 335, 335, 114, - /* 1340 */ 335, 335, 335, 335, 335, 335, 335, 91, 108, 97, - /* 1350 */ 166, 197, 183, 72, 335, 335, 176, 172, 335, 177, - /* 1360 */ 335, 335, 114, 335, 335, 335, 335, 335, 335, 335, - /* 1370 */ 90, 108, 97, 166, 197, 183, 72, 335, 177, 176, - /* 1380 */ 172, 114, 335, 335, 335, 335, 335, 335, 335, 89, - /* 1390 */ 108, 97, 166, 197, 183, 72, 335, 335, 176, 172, - /* 1400 */ 335, 335, 335, 177, 335, 335, 114, 335, 335, 335, - /* 1410 */ 335, 335, 335, 335, 88, 108, 97, 166, 197, 183, - /* 1420 */ 72, 335, 335, 176, 172, 177, 335, 335, 114, 335, - /* 1430 */ 335, 335, 335, 335, 335, 335, 87, 108, 97, 166, - /* 1440 */ 197, 183, 72, 335, 335, 176, 172, 335, 177, 335, - /* 1450 */ 335, 114, 335, 335, 335, 335, 335, 335, 335, 86, - /* 1460 */ 108, 97, 166, 197, 183, 72, 335, 177, 176, 172, - /* 1470 */ 114, 335, 335, 335, 335, 335, 335, 335, 335, 115, - /* 1480 */ 97, 166, 197, 183, 72, 335, 7, 176, 172, 173, - /* 1490 */ 81, 335, 177, 335, 335, 114, 335, 335, 335, 335, - /* 1500 */ 335, 335, 335, 335, 111, 97, 166, 197, 183, 72, - /* 1510 */ 335, 335, 176, 172, 177, 335, 335, 114, 335, 335, - /* 1520 */ 335, 335, 335, 335, 335, 335, 109, 97, 166, 197, - /* 1530 */ 183, 72, 335, 335, 176, 172, 335, 177, 335, 335, - /* 1540 */ 114, 335, 335, 171, 170, 169, 168, 167, 3, 335, - /* 1550 */ 101, 166, 197, 183, 72, 335, 335, 176, 172, 177, - /* 1560 */ 335, 335, 114, 335, 335, 335, 335, 177, 335, 335, - /* 1570 */ 114, 335, 99, 166, 197, 183, 72, 335, 335, 176, - /* 1580 */ 172, 198, 197, 183, 72, 335, 177, 176, 172, 114, - /* 1590 */ 335, 335, 335, 335, 335, 177, 335, 335, 114, 335, - /* 1600 */ 196, 197, 183, 72, 335, 177, 176, 172, 114, 195, - /* 1610 */ 197, 183, 72, 335, 335, 176, 172, 335, 335, 194, - /* 1620 */ 197, 183, 72, 335, 177, 176, 172, 114, 335, 335, - /* 1630 */ 335, 335, 177, 335, 335, 114, 335, 335, 193, 197, - /* 1640 */ 183, 72, 335, 335, 176, 172, 192, 197, 183, 72, - /* 1650 */ 335, 177, 176, 172, 114, 335, 335, 335, 335, 177, - /* 1660 */ 335, 335, 114, 335, 335, 191, 197, 183, 72, 335, - /* 1670 */ 335, 176, 172, 190, 197, 183, 72, 335, 177, 176, - /* 1680 */ 172, 114, 335, 335, 335, 335, 177, 335, 335, 114, - /* 1690 */ 335, 335, 189, 197, 183, 72, 335, 335, 176, 172, - /* 1700 */ 188, 197, 183, 72, 335, 177, 176, 172, 114, 335, - /* 1710 */ 335, 335, 335, 177, 335, 335, 114, 335, 335, 187, - /* 1720 */ 197, 183, 72, 335, 335, 176, 172, 186, 197, 183, - /* 1730 */ 72, 335, 177, 176, 172, 114, 335, 335, 335, 335, - /* 1740 */ 177, 335, 335, 114, 335, 335, 178, 197, 183, 72, - /* 1750 */ 335, 335, 176, 172, 174, 197, 183, 72, 335, 335, - /* 1760 */ 176, 172, + /* 80 */ 61, 60, 59, 58, 57, 172, 171, 170, 169, 168, + /* 90 */ 3, 7, 26, 154, 174, 81, 209, 70, 165, 77, + /* 100 */ 131, 9, 176, 69, 107, 64, 63, 204, 28, 28, + /* 110 */ 67, 66, 65, 62, 61, 60, 59, 58, 57, 172, + /* 120 */ 171, 170, 169, 168, 3, 7, 31, 30, 174, 81, + /* 130 */ 10, 8, 165, 122, 64, 63, 54, 53, 160, 67, + /* 140 */ 66, 65, 62, 61, 60, 59, 58, 57, 172, 171, + /* 150 */ 170, 169, 168, 3, 166, 7, 36, 35, 174, 81, + /* 160 */ 210, 153, 68, 56, 55, 186, 185, 23, 64, 63, + /* 170 */ 163, 207, 71, 67, 66, 65, 62, 61, 60, 59, + /* 180 */ 58, 57, 172, 171, 170, 169, 168, 3, 159, 213, + /* 190 */ 28, 206, 160, 205, 160, 183, 182, 138, 64, 63, + /* 200 */ 135, 338, 28, 67, 66, 65, 62, 61, 60, 59, + /* 210 */ 58, 57, 172, 171, 170, 169, 168, 3, 119, 211, + /* 220 */ 134, 178, 181, 202, 82, 118, 117, 126, 125, 124, + /* 230 */ 112, 83, 96, 108, 97, 167, 198, 184, 72, 156, + /* 240 */ 338, 177, 173, 162, 123, 107, 180, 178, 155, 202, + /* 250 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, + /* 260 */ 97, 167, 198, 184, 72, 338, 338, 177, 173, 11, + /* 270 */ 80, 73, 338, 338, 208, 103, 338, 178, 133, 202, + /* 280 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, + /* 290 */ 97, 167, 198, 184, 72, 157, 338, 177, 173, 338, + /* 300 */ 338, 338, 338, 119, 338, 132, 178, 181, 202, 82, + /* 310 */ 118, 117, 126, 125, 124, 112, 83, 96, 108, 97, + /* 320 */ 167, 198, 184, 72, 338, 113, 177, 173, 178, 181, + /* 330 */ 202, 82, 118, 117, 126, 125, 124, 112, 83, 96, + /* 340 */ 108, 97, 167, 198, 184, 72, 338, 338, 177, 173, + /* 350 */ 338, 110, 338, 338, 178, 181, 202, 82, 118, 117, + /* 360 */ 126, 125, 124, 112, 83, 96, 108, 97, 167, 198, + /* 370 */ 184, 72, 338, 338, 177, 173, 178, 151, 202, 82, + /* 380 */ 118, 117, 126, 125, 124, 112, 83, 96, 108, 97, + /* 390 */ 167, 198, 184, 72, 338, 7, 177, 173, 174, 81, + /* 400 */ 338, 338, 156, 106, 178, 133, 202, 82, 118, 117, + /* 410 */ 126, 125, 124, 112, 83, 96, 108, 97, 167, 198, + /* 420 */ 184, 72, 214, 7, 177, 173, 174, 81, 338, 338, + /* 430 */ 338, 338, 136, 338, 338, 5, 338, 338, 64, 63, + /* 440 */ 338, 338, 338, 67, 66, 65, 62, 61, 60, 59, + /* 450 */ 58, 57, 172, 171, 170, 169, 168, 3, 338, 338, + /* 460 */ 338, 338, 338, 338, 338, 338, 64, 63, 338, 338, + /* 470 */ 338, 67, 66, 65, 62, 61, 60, 59, 58, 57, + /* 480 */ 172, 171, 170, 169, 168, 3, 178, 203, 202, 82, + /* 490 */ 118, 117, 126, 125, 124, 112, 83, 96, 108, 97, + /* 500 */ 167, 198, 184, 72, 338, 338, 177, 173, 338, 338, + /* 510 */ 338, 178, 201, 202, 82, 118, 117, 126, 125, 124, + /* 520 */ 112, 83, 96, 108, 97, 167, 198, 184, 72, 338, + /* 530 */ 338, 177, 173, 178, 130, 202, 82, 118, 117, 126, + /* 540 */ 125, 124, 112, 83, 96, 108, 97, 167, 198, 184, + /* 550 */ 72, 338, 338, 177, 173, 178, 200, 202, 82, 118, + /* 560 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 167, + /* 570 */ 198, 184, 72, 338, 338, 177, 173, 178, 161, 202, + /* 580 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, + /* 590 */ 97, 167, 198, 184, 72, 338, 338, 177, 173, 178, + /* 600 */ 152, 202, 82, 118, 117, 126, 125, 124, 112, 83, + /* 610 */ 96, 108, 97, 167, 198, 184, 72, 338, 338, 177, + /* 620 */ 173, 178, 150, 202, 82, 118, 117, 126, 125, 124, + /* 630 */ 112, 83, 96, 108, 97, 167, 198, 184, 72, 338, + /* 640 */ 338, 177, 173, 178, 149, 202, 82, 118, 117, 126, + /* 650 */ 125, 124, 112, 83, 96, 108, 97, 167, 198, 184, + /* 660 */ 72, 338, 338, 177, 173, 178, 148, 202, 82, 118, + /* 670 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 167, + /* 680 */ 198, 184, 72, 338, 338, 177, 173, 178, 147, 202, + /* 690 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, + /* 700 */ 97, 167, 198, 184, 72, 338, 338, 177, 173, 178, + /* 710 */ 146, 202, 82, 118, 117, 126, 125, 124, 112, 83, + /* 720 */ 96, 108, 97, 167, 198, 184, 72, 338, 338, 177, + /* 730 */ 173, 178, 145, 202, 82, 118, 117, 126, 125, 124, + /* 740 */ 112, 83, 96, 108, 97, 167, 198, 184, 72, 338, + /* 750 */ 338, 177, 173, 178, 144, 202, 82, 118, 117, 126, + /* 760 */ 125, 124, 112, 83, 96, 108, 97, 167, 198, 184, + /* 770 */ 72, 338, 338, 177, 173, 178, 143, 202, 82, 118, + /* 780 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 167, + /* 790 */ 198, 184, 72, 338, 338, 177, 173, 178, 142, 202, + /* 800 */ 82, 118, 117, 126, 125, 124, 112, 83, 96, 108, + /* 810 */ 97, 167, 198, 184, 72, 338, 338, 177, 173, 178, + /* 820 */ 141, 202, 82, 118, 117, 126, 125, 124, 112, 83, + /* 830 */ 96, 108, 97, 167, 198, 184, 72, 338, 338, 177, + /* 840 */ 173, 178, 140, 202, 82, 118, 117, 126, 125, 124, + /* 850 */ 112, 83, 96, 108, 97, 167, 198, 184, 72, 338, + /* 860 */ 338, 177, 173, 178, 164, 202, 82, 118, 117, 126, + /* 870 */ 125, 124, 112, 83, 96, 108, 97, 167, 198, 184, + /* 880 */ 72, 338, 338, 177, 173, 178, 158, 202, 82, 118, + /* 890 */ 117, 126, 125, 124, 112, 83, 96, 108, 97, 167, + /* 900 */ 198, 184, 72, 338, 178, 177, 173, 114, 338, 105, + /* 910 */ 126, 125, 124, 112, 83, 96, 108, 97, 167, 198, + /* 920 */ 184, 72, 338, 178, 177, 173, 114, 338, 338, 129, + /* 930 */ 125, 124, 112, 83, 96, 108, 97, 167, 198, 184, + /* 940 */ 72, 338, 178, 177, 173, 114, 338, 338, 121, 125, + /* 950 */ 124, 112, 83, 96, 108, 97, 167, 198, 184, 72, + /* 960 */ 338, 338, 177, 173, 178, 338, 338, 114, 338, 338, + /* 970 */ 338, 128, 124, 112, 83, 96, 108, 97, 167, 198, + /* 980 */ 184, 72, 338, 338, 177, 173, 27, 22, 21, 20, + /* 990 */ 19, 18, 17, 16, 15, 14, 13, 12, 178, 338, + /* 1000 */ 338, 114, 338, 338, 338, 338, 127, 112, 83, 96, + /* 1010 */ 108, 97, 167, 198, 184, 72, 338, 338, 177, 173, + /* 1020 */ 338, 338, 338, 338, 338, 338, 338, 186, 185, 49, + /* 1030 */ 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, + /* 1040 */ 38, 37, 178, 338, 338, 114, 338, 338, 338, 338, + /* 1050 */ 338, 116, 83, 96, 108, 97, 167, 198, 184, 72, + /* 1060 */ 338, 338, 177, 173, 178, 338, 338, 114, 338, 338, + /* 1070 */ 338, 338, 338, 338, 85, 96, 108, 97, 167, 198, + /* 1080 */ 184, 72, 338, 338, 177, 173, 178, 338, 338, 114, + /* 1090 */ 338, 338, 338, 338, 338, 338, 84, 96, 108, 97, + /* 1100 */ 167, 198, 184, 72, 338, 338, 177, 173, 178, 338, + /* 1110 */ 338, 114, 338, 338, 338, 338, 338, 338, 338, 102, + /* 1120 */ 108, 97, 167, 198, 184, 72, 338, 338, 177, 173, + /* 1130 */ 178, 338, 338, 114, 338, 338, 338, 338, 338, 338, + /* 1140 */ 338, 100, 108, 97, 167, 198, 184, 72, 338, 338, + /* 1150 */ 177, 173, 338, 178, 338, 338, 114, 338, 338, 338, + /* 1160 */ 338, 338, 338, 338, 98, 108, 97, 167, 198, 184, + /* 1170 */ 72, 338, 338, 177, 173, 178, 338, 338, 114, 338, + /* 1180 */ 338, 338, 338, 338, 338, 338, 95, 108, 97, 167, + /* 1190 */ 198, 184, 72, 338, 338, 177, 173, 338, 178, 338, + /* 1200 */ 338, 114, 338, 338, 338, 338, 338, 338, 338, 94, + /* 1210 */ 108, 97, 167, 198, 184, 72, 338, 338, 177, 173, + /* 1220 */ 178, 338, 338, 114, 338, 338, 338, 338, 338, 338, + /* 1230 */ 338, 93, 108, 97, 167, 198, 184, 72, 338, 338, + /* 1240 */ 177, 173, 338, 178, 338, 338, 114, 338, 338, 338, + /* 1250 */ 338, 338, 338, 338, 92, 108, 97, 167, 198, 184, + /* 1260 */ 72, 338, 338, 177, 173, 178, 338, 338, 114, 338, + /* 1270 */ 338, 338, 338, 338, 338, 338, 91, 108, 97, 167, + /* 1280 */ 198, 184, 72, 338, 338, 177, 173, 338, 178, 338, + /* 1290 */ 338, 114, 338, 338, 338, 338, 338, 338, 338, 90, + /* 1300 */ 108, 97, 167, 198, 184, 72, 338, 338, 177, 173, + /* 1310 */ 178, 338, 338, 114, 338, 338, 338, 338, 338, 338, + /* 1320 */ 338, 89, 108, 97, 167, 198, 184, 72, 338, 338, + /* 1330 */ 177, 173, 338, 178, 338, 338, 114, 338, 338, 338, + /* 1340 */ 338, 338, 338, 338, 88, 108, 97, 167, 198, 184, + /* 1350 */ 72, 338, 338, 177, 173, 178, 338, 338, 114, 338, + /* 1360 */ 338, 338, 338, 338, 338, 338, 87, 108, 97, 167, + /* 1370 */ 198, 184, 72, 338, 338, 177, 173, 338, 178, 338, + /* 1380 */ 338, 114, 338, 338, 338, 338, 338, 338, 338, 86, + /* 1390 */ 108, 97, 167, 198, 184, 72, 338, 338, 177, 173, + /* 1400 */ 212, 338, 79, 78, 75, 209, 70, 338, 77, 131, + /* 1410 */ 9, 338, 69, 79, 78, 75, 209, 70, 137, 77, + /* 1420 */ 131, 9, 338, 69, 178, 338, 338, 114, 338, 338, + /* 1430 */ 338, 338, 338, 338, 338, 338, 115, 97, 167, 198, + /* 1440 */ 184, 72, 338, 338, 177, 173, 178, 7, 338, 114, + /* 1450 */ 174, 81, 338, 338, 338, 338, 338, 338, 111, 97, + /* 1460 */ 167, 198, 184, 72, 338, 338, 177, 173, 178, 338, + /* 1470 */ 338, 114, 338, 338, 338, 338, 338, 338, 338, 338, + /* 1480 */ 109, 97, 167, 198, 184, 72, 338, 338, 177, 173, + /* 1490 */ 338, 338, 338, 338, 338, 338, 338, 178, 338, 338, + /* 1500 */ 114, 338, 338, 338, 172, 171, 170, 169, 168, 3, + /* 1510 */ 101, 167, 198, 184, 72, 338, 178, 177, 173, 114, + /* 1520 */ 338, 338, 338, 338, 178, 338, 338, 114, 338, 99, + /* 1530 */ 167, 198, 184, 72, 338, 338, 177, 173, 199, 198, + /* 1540 */ 184, 72, 338, 338, 177, 173, 178, 338, 338, 114, + /* 1550 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 1560 */ 197, 198, 184, 72, 338, 338, 177, 173, 178, 338, + /* 1570 */ 338, 114, 338, 338, 338, 338, 178, 338, 338, 114, + /* 1580 */ 338, 338, 196, 198, 184, 72, 338, 338, 177, 173, + /* 1590 */ 195, 198, 184, 72, 338, 178, 177, 173, 114, 338, + /* 1600 */ 338, 338, 338, 178, 338, 338, 114, 338, 338, 194, + /* 1610 */ 198, 184, 72, 338, 338, 177, 173, 193, 198, 184, + /* 1620 */ 72, 338, 338, 177, 173, 178, 338, 338, 114, 338, + /* 1630 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 192, + /* 1640 */ 198, 184, 72, 338, 338, 177, 173, 178, 338, 338, + /* 1650 */ 114, 338, 338, 338, 338, 178, 338, 338, 114, 338, + /* 1660 */ 338, 191, 198, 184, 72, 338, 338, 177, 173, 190, + /* 1670 */ 198, 184, 72, 338, 178, 177, 173, 114, 338, 338, + /* 1680 */ 338, 338, 178, 338, 338, 114, 338, 338, 189, 198, + /* 1690 */ 184, 72, 338, 338, 177, 173, 188, 198, 184, 72, + /* 1700 */ 338, 338, 177, 173, 178, 338, 338, 114, 338, 338, + /* 1710 */ 338, 338, 338, 338, 338, 338, 338, 338, 187, 198, + /* 1720 */ 184, 72, 338, 338, 177, 173, 178, 338, 338, 114, + /* 1730 */ 338, 338, 338, 338, 178, 338, 338, 114, 338, 338, + /* 1740 */ 179, 198, 184, 72, 338, 338, 177, 173, 175, 198, + /* 1750 */ 184, 72, 338, 338, 177, 173, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 72, 73, 74, 8, 76, 77, 78, 79, 80, 81, - /* 10 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 20 */ 92, 93, 94, 1, 27, 97, 98, 5, 6, 28, - /* 30 */ 8, 9, 10, 29, 12, 73, 74, 77, 76, 77, - /* 40 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 50 */ 88, 89, 90, 91, 92, 93, 94, 97, 98, 97, - /* 60 */ 98, 5, 6, 30, 8, 9, 10, 27, 12, 6, + /* 0 */ 73, 74, 75, 8, 77, 78, 79, 80, 81, 82, + /* 10 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 20 */ 93, 94, 95, 1, 27, 98, 99, 5, 6, 28, + /* 30 */ 8, 9, 10, 29, 12, 74, 75, 78, 77, 78, + /* 40 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + /* 50 */ 89, 90, 91, 92, 93, 94, 95, 98, 99, 98, + /* 60 */ 99, 5, 6, 30, 8, 9, 10, 27, 12, 6, /* 70 */ 4, 49, 50, 46, 47, 48, 54, 55, 56, 57, /* 80 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, /* 90 */ 68, 6, 26, 9, 9, 10, 5, 6, 13, 8, - /* 100 */ 9, 10, 7, 12, 101, 49, 50, 11, 13, 13, + /* 100 */ 9, 10, 7, 12, 102, 49, 50, 11, 13, 13, /* 110 */ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, /* 120 */ 64, 65, 66, 67, 68, 6, 2, 3, 9, 10, - /* 130 */ 7, 68, 13, 70, 49, 50, 13, 31, 32, 54, + /* 130 */ 100, 68, 13, 70, 49, 50, 49, 50, 9, 54, /* 140 */ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - /* 150 */ 65, 66, 67, 68, 69, 33, 34, 35, 36, 37, - /* 160 */ 38, 39, 40, 41, 42, 43, 44, 45, 49, 50, - /* 170 */ 49, 50, 99, 54, 55, 56, 57, 58, 59, 60, - /* 180 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 74, - /* 190 */ 55, 56, 77, 78, 79, 80, 81, 82, 83, 84, - /* 200 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 210 */ 102, 103, 97, 98, 9, 13, 101, 77, 78, 79, - /* 220 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 230 */ 90, 91, 92, 93, 94, 76, 76, 97, 98, 99, - /* 240 */ 100, 51, 52, 53, 75, 106, 77, 78, 79, 80, + /* 150 */ 65, 66, 67, 68, 69, 6, 31, 32, 9, 10, + /* 160 */ 77, 7, 51, 52, 53, 55, 56, 13, 49, 50, + /* 170 */ 11, 77, 13, 54, 55, 56, 57, 58, 59, 60, + /* 180 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, + /* 190 */ 13, 77, 63, 77, 65, 96, 97, 77, 49, 50, + /* 200 */ 51, 107, 13, 54, 55, 56, 57, 58, 59, 60, + /* 210 */ 61, 62, 63, 64, 65, 66, 67, 68, 75, 77, + /* 220 */ 71, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 230 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 13, + /* 240 */ 107, 98, 99, 103, 104, 102, 69, 78, 79, 80, /* 250 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 260 */ 91, 92, 93, 94, 13, 76, 97, 98, 63, 76, - /* 270 */ 65, 69, 74, 76, 105, 77, 78, 79, 80, 81, - /* 280 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 290 */ 92, 93, 94, 76, 74, 97, 98, 77, 78, 79, - /* 300 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 310 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 74, - /* 320 */ 69, 106, 77, 78, 79, 80, 81, 82, 83, 84, - /* 330 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 340 */ 106, 106, 97, 98, 77, 78, 79, 80, 81, 82, - /* 350 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 360 */ 93, 94, 106, 6, 97, 98, 9, 10, 95, 96, - /* 370 */ 106, 104, 77, 78, 79, 80, 81, 82, 83, 84, - /* 380 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 390 */ 0, 6, 97, 98, 9, 10, 0, 11, 13, 13, - /* 400 */ 105, 73, 106, 13, 76, 106, 49, 50, 51, 13, - /* 410 */ 106, 54, 55, 56, 57, 58, 59, 60, 61, 62, - /* 420 */ 63, 64, 65, 66, 67, 68, 6, 106, 106, 9, - /* 430 */ 10, 106, 106, 106, 49, 50, 106, 106, 106, 54, - /* 440 */ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - /* 450 */ 65, 66, 67, 68, 0, 106, 2, 3, 4, 5, - /* 460 */ 6, 106, 8, 9, 10, 106, 12, 106, 106, 49, - /* 470 */ 50, 106, 106, 106, 54, 55, 56, 57, 58, 59, - /* 480 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 77, - /* 490 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 500 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 510 */ 98, 106, 77, 78, 79, 80, 81, 82, 83, 84, - /* 520 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 530 */ 106, 106, 97, 98, 106, 2, 3, 4, 5, 6, - /* 540 */ 7, 8, 9, 10, 106, 12, 106, 77, 78, 79, - /* 550 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 560 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 77, - /* 570 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 580 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 590 */ 98, 77, 78, 79, 80, 81, 82, 83, 84, 85, - /* 600 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 106, - /* 610 */ 106, 97, 98, 106, 106, 106, 106, 106, 106, 106, - /* 620 */ 106, 106, 106, 106, 106, 77, 78, 79, 80, 81, - /* 630 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 640 */ 92, 93, 94, 106, 106, 97, 98, 77, 78, 79, - /* 650 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 660 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 77, - /* 670 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 680 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 690 */ 98, 106, 106, 106, 106, 106, 106, 106, 106, 106, - /* 700 */ 106, 106, 106, 77, 78, 79, 80, 81, 82, 83, - /* 710 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 720 */ 94, 106, 106, 97, 98, 77, 78, 79, 80, 81, - /* 730 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 740 */ 92, 93, 94, 106, 106, 97, 98, 77, 78, 79, - /* 750 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 760 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 106, - /* 770 */ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - /* 780 */ 106, 77, 78, 79, 80, 81, 82, 83, 84, 85, - /* 790 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 106, - /* 800 */ 106, 97, 98, 77, 78, 79, 80, 81, 82, 83, - /* 810 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 820 */ 94, 106, 106, 97, 98, 77, 78, 79, 80, 81, - /* 830 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 840 */ 92, 93, 94, 106, 106, 97, 98, 106, 106, 106, - /* 850 */ 106, 106, 106, 106, 106, 106, 106, 106, 106, 77, - /* 860 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 870 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 880 */ 98, 77, 78, 79, 80, 81, 82, 83, 84, 85, - /* 890 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 106, - /* 900 */ 106, 97, 98, 77, 78, 79, 80, 81, 82, 83, + /* 260 */ 91, 92, 93, 94, 95, 107, 107, 98, 99, 100, + /* 270 */ 101, 74, 107, 107, 77, 76, 107, 78, 79, 80, + /* 280 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 290 */ 91, 92, 93, 94, 95, 69, 107, 98, 99, 107, + /* 300 */ 107, 107, 107, 75, 107, 106, 78, 79, 80, 81, + /* 310 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + /* 320 */ 92, 93, 94, 95, 107, 75, 98, 99, 78, 79, + /* 330 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + /* 340 */ 90, 91, 92, 93, 94, 95, 107, 107, 98, 99, + /* 350 */ 107, 75, 107, 107, 78, 79, 80, 81, 82, 83, + /* 360 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + /* 370 */ 94, 95, 107, 107, 98, 99, 78, 79, 80, 81, + /* 380 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + /* 390 */ 92, 93, 94, 95, 107, 6, 98, 99, 9, 10, + /* 400 */ 107, 107, 13, 105, 78, 79, 80, 81, 82, 83, + /* 410 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + /* 420 */ 94, 95, 0, 6, 98, 99, 9, 10, 107, 107, + /* 430 */ 107, 107, 106, 107, 107, 13, 107, 107, 49, 50, + /* 440 */ 107, 107, 107, 54, 55, 56, 57, 58, 59, 60, + /* 450 */ 61, 62, 63, 64, 65, 66, 67, 68, 107, 107, + /* 460 */ 107, 107, 107, 107, 107, 107, 49, 50, 107, 107, + /* 470 */ 107, 54, 55, 56, 57, 58, 59, 60, 61, 62, + /* 480 */ 63, 64, 65, 66, 67, 68, 78, 79, 80, 81, + /* 490 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + /* 500 */ 92, 93, 94, 95, 107, 107, 98, 99, 107, 107, + /* 510 */ 107, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 520 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 107, + /* 530 */ 107, 98, 99, 78, 79, 80, 81, 82, 83, 84, + /* 540 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 550 */ 95, 107, 107, 98, 99, 78, 79, 80, 81, 82, + /* 560 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 570 */ 93, 94, 95, 107, 107, 98, 99, 78, 79, 80, + /* 580 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 590 */ 91, 92, 93, 94, 95, 107, 107, 98, 99, 78, + /* 600 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + /* 610 */ 89, 90, 91, 92, 93, 94, 95, 107, 107, 98, + /* 620 */ 99, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 630 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 107, + /* 640 */ 107, 98, 99, 78, 79, 80, 81, 82, 83, 84, + /* 650 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 660 */ 95, 107, 107, 98, 99, 78, 79, 80, 81, 82, + /* 670 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 680 */ 93, 94, 95, 107, 107, 98, 99, 78, 79, 80, + /* 690 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 700 */ 91, 92, 93, 94, 95, 107, 107, 98, 99, 78, + /* 710 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + /* 720 */ 89, 90, 91, 92, 93, 94, 95, 107, 107, 98, + /* 730 */ 99, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 740 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 107, + /* 750 */ 107, 98, 99, 78, 79, 80, 81, 82, 83, 84, + /* 760 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 770 */ 95, 107, 107, 98, 99, 78, 79, 80, 81, 82, + /* 780 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 790 */ 93, 94, 95, 107, 107, 98, 99, 78, 79, 80, + /* 800 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 810 */ 91, 92, 93, 94, 95, 107, 107, 98, 99, 78, + /* 820 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + /* 830 */ 89, 90, 91, 92, 93, 94, 95, 107, 107, 98, + /* 840 */ 99, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 850 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 107, + /* 860 */ 107, 98, 99, 78, 79, 80, 81, 82, 83, 84, + /* 870 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 880 */ 95, 107, 107, 98, 99, 78, 79, 80, 81, 82, + /* 890 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 900 */ 93, 94, 95, 107, 78, 98, 99, 81, 107, 83, /* 910 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 920 */ 94, 106, 106, 97, 98, 106, 106, 106, 106, 106, - /* 930 */ 106, 106, 106, 106, 106, 106, 106, 77, 78, 79, - /* 940 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 950 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 77, - /* 960 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 970 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 980 */ 98, 77, 106, 106, 80, 106, 82, 83, 84, 85, - /* 990 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 106, - /* 1000 */ 106, 97, 98, 106, 106, 106, 106, 106, 106, 106, - /* 1010 */ 106, 106, 106, 106, 106, 77, 106, 106, 80, 106, - /* 1020 */ 106, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 1030 */ 92, 93, 94, 106, 106, 97, 98, 77, 106, 106, - /* 1040 */ 80, 106, 106, 83, 84, 85, 86, 87, 88, 89, - /* 1050 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 77, - /* 1060 */ 106, 106, 80, 106, 106, 106, 84, 85, 86, 87, - /* 1070 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 1080 */ 98, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 1090 */ 23, 24, 25, 77, 106, 106, 80, 106, 106, 106, - /* 1100 */ 106, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 1110 */ 94, 106, 106, 97, 98, 77, 106, 106, 80, 106, - /* 1120 */ 106, 106, 55, 56, 86, 87, 88, 89, 90, 91, - /* 1130 */ 92, 93, 94, 106, 106, 97, 98, 77, 106, 106, - /* 1140 */ 80, 106, 106, 106, 106, 106, 106, 87, 88, 89, - /* 1150 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 77, - /* 1160 */ 106, 106, 80, 106, 106, 106, 106, 106, 106, 87, - /* 1170 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 1180 */ 98, 77, 106, 106, 80, 106, 106, 106, 106, 106, - /* 1190 */ 106, 106, 88, 89, 90, 91, 92, 93, 94, 106, - /* 1200 */ 77, 97, 98, 80, 106, 106, 106, 106, 106, 106, - /* 1210 */ 106, 88, 89, 90, 91, 92, 93, 94, 106, 106, - /* 1220 */ 97, 98, 106, 106, 106, 77, 106, 106, 80, 106, - /* 1230 */ 106, 106, 106, 106, 106, 106, 88, 89, 90, 91, - /* 1240 */ 92, 93, 94, 106, 106, 97, 98, 77, 106, 106, - /* 1250 */ 80, 106, 106, 106, 106, 106, 106, 106, 88, 89, - /* 1260 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 106, - /* 1270 */ 77, 106, 106, 80, 106, 106, 106, 106, 106, 106, - /* 1280 */ 106, 88, 89, 90, 91, 92, 93, 94, 106, 77, - /* 1290 */ 97, 98, 80, 106, 106, 106, 106, 106, 106, 106, - /* 1300 */ 88, 89, 90, 91, 92, 93, 94, 106, 106, 97, - /* 1310 */ 98, 106, 106, 106, 77, 106, 106, 80, 106, 106, - /* 1320 */ 106, 106, 106, 106, 106, 88, 89, 90, 91, 92, - /* 1330 */ 93, 94, 106, 106, 97, 98, 77, 106, 106, 80, - /* 1340 */ 106, 106, 106, 106, 106, 106, 106, 88, 89, 90, - /* 1350 */ 91, 92, 93, 94, 106, 106, 97, 98, 106, 77, - /* 1360 */ 106, 106, 80, 106, 106, 106, 106, 106, 106, 106, - /* 1370 */ 88, 89, 90, 91, 92, 93, 94, 106, 77, 97, - /* 1380 */ 98, 80, 106, 106, 106, 106, 106, 106, 106, 88, - /* 1390 */ 89, 90, 91, 92, 93, 94, 106, 106, 97, 98, - /* 1400 */ 106, 106, 106, 77, 106, 106, 80, 106, 106, 106, - /* 1410 */ 106, 106, 106, 106, 88, 89, 90, 91, 92, 93, - /* 1420 */ 94, 106, 106, 97, 98, 77, 106, 106, 80, 106, - /* 1430 */ 106, 106, 106, 106, 106, 106, 88, 89, 90, 91, - /* 1440 */ 92, 93, 94, 106, 106, 97, 98, 106, 77, 106, - /* 1450 */ 106, 80, 106, 106, 106, 106, 106, 106, 106, 88, - /* 1460 */ 89, 90, 91, 92, 93, 94, 106, 77, 97, 98, - /* 1470 */ 80, 106, 106, 106, 106, 106, 106, 106, 106, 89, - /* 1480 */ 90, 91, 92, 93, 94, 106, 6, 97, 98, 9, - /* 1490 */ 10, 106, 77, 106, 106, 80, 106, 106, 106, 106, - /* 1500 */ 106, 106, 106, 106, 89, 90, 91, 92, 93, 94, - /* 1510 */ 106, 106, 97, 98, 77, 106, 106, 80, 106, 106, - /* 1520 */ 106, 106, 106, 106, 106, 106, 89, 90, 91, 92, - /* 1530 */ 93, 94, 106, 106, 97, 98, 106, 77, 106, 106, - /* 1540 */ 80, 106, 106, 63, 64, 65, 66, 67, 68, 106, - /* 1550 */ 90, 91, 92, 93, 94, 106, 106, 97, 98, 77, - /* 1560 */ 106, 106, 80, 106, 106, 106, 106, 77, 106, 106, - /* 1570 */ 80, 106, 90, 91, 92, 93, 94, 106, 106, 97, - /* 1580 */ 98, 91, 92, 93, 94, 106, 77, 97, 98, 80, - /* 1590 */ 106, 106, 106, 106, 106, 77, 106, 106, 80, 106, - /* 1600 */ 91, 92, 93, 94, 106, 77, 97, 98, 80, 91, - /* 1610 */ 92, 93, 94, 106, 106, 97, 98, 106, 106, 91, - /* 1620 */ 92, 93, 94, 106, 77, 97, 98, 80, 106, 106, - /* 1630 */ 106, 106, 77, 106, 106, 80, 106, 106, 91, 92, - /* 1640 */ 93, 94, 106, 106, 97, 98, 91, 92, 93, 94, - /* 1650 */ 106, 77, 97, 98, 80, 106, 106, 106, 106, 77, - /* 1660 */ 106, 106, 80, 106, 106, 91, 92, 93, 94, 106, - /* 1670 */ 106, 97, 98, 91, 92, 93, 94, 106, 77, 97, - /* 1680 */ 98, 80, 106, 106, 106, 106, 77, 106, 106, 80, - /* 1690 */ 106, 106, 91, 92, 93, 94, 106, 106, 97, 98, - /* 1700 */ 91, 92, 93, 94, 106, 77, 97, 98, 80, 106, - /* 1710 */ 106, 106, 106, 77, 106, 106, 80, 106, 106, 91, - /* 1720 */ 92, 93, 94, 106, 106, 97, 98, 91, 92, 93, - /* 1730 */ 94, 106, 77, 97, 98, 80, 106, 106, 106, 106, - /* 1740 */ 77, 106, 106, 80, 106, 106, 91, 92, 93, 94, - /* 1750 */ 106, 106, 97, 98, 91, 92, 93, 94, 106, 106, - /* 1760 */ 97, 98, + /* 920 */ 94, 95, 107, 78, 98, 99, 81, 107, 107, 84, + /* 930 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 940 */ 95, 107, 78, 98, 99, 81, 107, 107, 84, 85, + /* 950 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + /* 960 */ 107, 107, 98, 99, 78, 107, 107, 81, 107, 107, + /* 970 */ 107, 85, 86, 87, 88, 89, 90, 91, 92, 93, + /* 980 */ 94, 95, 107, 107, 98, 99, 14, 15, 16, 17, + /* 990 */ 18, 19, 20, 21, 22, 23, 24, 25, 78, 107, + /* 1000 */ 107, 81, 107, 107, 107, 107, 86, 87, 88, 89, + /* 1010 */ 90, 91, 92, 93, 94, 95, 107, 107, 98, 99, + /* 1020 */ 107, 107, 107, 107, 107, 107, 107, 55, 56, 33, + /* 1030 */ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + /* 1040 */ 44, 45, 78, 107, 107, 81, 107, 107, 107, 107, + /* 1050 */ 107, 87, 88, 89, 90, 91, 92, 93, 94, 95, + /* 1060 */ 107, 107, 98, 99, 78, 107, 107, 81, 107, 107, + /* 1070 */ 107, 107, 107, 107, 88, 89, 90, 91, 92, 93, + /* 1080 */ 94, 95, 107, 107, 98, 99, 78, 107, 107, 81, + /* 1090 */ 107, 107, 107, 107, 107, 107, 88, 89, 90, 91, + /* 1100 */ 92, 93, 94, 95, 107, 107, 98, 99, 78, 107, + /* 1110 */ 107, 81, 107, 107, 107, 107, 107, 107, 107, 89, + /* 1120 */ 90, 91, 92, 93, 94, 95, 107, 107, 98, 99, + /* 1130 */ 78, 107, 107, 81, 107, 107, 107, 107, 107, 107, + /* 1140 */ 107, 89, 90, 91, 92, 93, 94, 95, 107, 107, + /* 1150 */ 98, 99, 107, 78, 107, 107, 81, 107, 107, 107, + /* 1160 */ 107, 107, 107, 107, 89, 90, 91, 92, 93, 94, + /* 1170 */ 95, 107, 107, 98, 99, 78, 107, 107, 81, 107, + /* 1180 */ 107, 107, 107, 107, 107, 107, 89, 90, 91, 92, + /* 1190 */ 93, 94, 95, 107, 107, 98, 99, 107, 78, 107, + /* 1200 */ 107, 81, 107, 107, 107, 107, 107, 107, 107, 89, + /* 1210 */ 90, 91, 92, 93, 94, 95, 107, 107, 98, 99, + /* 1220 */ 78, 107, 107, 81, 107, 107, 107, 107, 107, 107, + /* 1230 */ 107, 89, 90, 91, 92, 93, 94, 95, 107, 107, + /* 1240 */ 98, 99, 107, 78, 107, 107, 81, 107, 107, 107, + /* 1250 */ 107, 107, 107, 107, 89, 90, 91, 92, 93, 94, + /* 1260 */ 95, 107, 107, 98, 99, 78, 107, 107, 81, 107, + /* 1270 */ 107, 107, 107, 107, 107, 107, 89, 90, 91, 92, + /* 1280 */ 93, 94, 95, 107, 107, 98, 99, 107, 78, 107, + /* 1290 */ 107, 81, 107, 107, 107, 107, 107, 107, 107, 89, + /* 1300 */ 90, 91, 92, 93, 94, 95, 107, 107, 98, 99, + /* 1310 */ 78, 107, 107, 81, 107, 107, 107, 107, 107, 107, + /* 1320 */ 107, 89, 90, 91, 92, 93, 94, 95, 107, 107, + /* 1330 */ 98, 99, 107, 78, 107, 107, 81, 107, 107, 107, + /* 1340 */ 107, 107, 107, 107, 89, 90, 91, 92, 93, 94, + /* 1350 */ 95, 107, 107, 98, 99, 78, 107, 107, 81, 107, + /* 1360 */ 107, 107, 107, 107, 107, 107, 89, 90, 91, 92, + /* 1370 */ 93, 94, 95, 107, 107, 98, 99, 107, 78, 107, + /* 1380 */ 107, 81, 107, 107, 107, 107, 107, 107, 107, 89, + /* 1390 */ 90, 91, 92, 93, 94, 95, 107, 107, 98, 99, + /* 1400 */ 0, 107, 2, 3, 4, 5, 6, 107, 8, 9, + /* 1410 */ 10, 107, 12, 2, 3, 4, 5, 6, 7, 8, + /* 1420 */ 9, 10, 107, 12, 78, 107, 107, 81, 107, 107, + /* 1430 */ 107, 107, 107, 107, 107, 107, 90, 91, 92, 93, + /* 1440 */ 94, 95, 107, 107, 98, 99, 78, 6, 107, 81, + /* 1450 */ 9, 10, 107, 107, 107, 107, 107, 107, 90, 91, + /* 1460 */ 92, 93, 94, 95, 107, 107, 98, 99, 78, 107, + /* 1470 */ 107, 81, 107, 107, 107, 107, 107, 107, 107, 107, + /* 1480 */ 90, 91, 92, 93, 94, 95, 107, 107, 98, 99, + /* 1490 */ 107, 107, 107, 107, 107, 107, 107, 78, 107, 107, + /* 1500 */ 81, 107, 107, 107, 63, 64, 65, 66, 67, 68, + /* 1510 */ 91, 92, 93, 94, 95, 107, 78, 98, 99, 81, + /* 1520 */ 107, 107, 107, 107, 78, 107, 107, 81, 107, 91, + /* 1530 */ 92, 93, 94, 95, 107, 107, 98, 99, 92, 93, + /* 1540 */ 94, 95, 107, 107, 98, 99, 78, 107, 107, 81, + /* 1550 */ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + /* 1560 */ 92, 93, 94, 95, 107, 107, 98, 99, 78, 107, + /* 1570 */ 107, 81, 107, 107, 107, 107, 78, 107, 107, 81, + /* 1580 */ 107, 107, 92, 93, 94, 95, 107, 107, 98, 99, + /* 1590 */ 92, 93, 94, 95, 107, 78, 98, 99, 81, 107, + /* 1600 */ 107, 107, 107, 78, 107, 107, 81, 107, 107, 92, + /* 1610 */ 93, 94, 95, 107, 107, 98, 99, 92, 93, 94, + /* 1620 */ 95, 107, 107, 98, 99, 78, 107, 107, 81, 107, + /* 1630 */ 107, 107, 107, 107, 107, 107, 107, 107, 107, 92, + /* 1640 */ 93, 94, 95, 107, 107, 98, 99, 78, 107, 107, + /* 1650 */ 81, 107, 107, 107, 107, 78, 107, 107, 81, 107, + /* 1660 */ 107, 92, 93, 94, 95, 107, 107, 98, 99, 92, + /* 1670 */ 93, 94, 95, 107, 78, 98, 99, 81, 107, 107, + /* 1680 */ 107, 107, 78, 107, 107, 81, 107, 107, 92, 93, + /* 1690 */ 94, 95, 107, 107, 98, 99, 92, 93, 94, 95, + /* 1700 */ 107, 107, 98, 99, 78, 107, 107, 81, 107, 107, + /* 1710 */ 107, 107, 107, 107, 107, 107, 107, 107, 92, 93, + /* 1720 */ 94, 95, 107, 107, 98, 99, 78, 107, 107, 81, + /* 1730 */ 107, 107, 107, 107, 78, 107, 107, 81, 107, 107, + /* 1740 */ 92, 93, 94, 95, 107, 107, 98, 99, 92, 93, + /* 1750 */ 94, 95, 107, 107, 98, 99, }; #define YY_SHIFT_USE_DFLT (-6) #define YY_SHIFT_COUNT (131) #define YY_SHIFT_MIN (-5) -#define YY_SHIFT_MAX (1480) +#define YY_SHIFT_MAX (1441) static const short yy_shift_ofst[] = { - /* 0 */ 22, 56, 357, 385, 420, 357, 420, 420, 420, 420, - /* 10 */ 119, 85, 420, 420, 420, 420, 420, 420, 420, 420, - /* 20 */ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - /* 30 */ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - /* 40 */ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - /* 50 */ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - /* 60 */ 420, 420, 420, 420, 420, 420, 420, 420, 420, 1480, - /* 70 */ 91, 205, 63, 533, 454, 91, 91, 91, 91, 91, - /* 80 */ 251, -6, 1067, 122, 122, 122, 27, 27, 27, 27, - /* 90 */ 27, 27, 27, 27, 27, 27, 27, 190, 27, 190, - /* 100 */ 27, 190, 27, 396, 390, 124, 123, 386, 121, 121, - /* 110 */ 95, 121, 106, 202, 135, 121, 106, 124, 66, 96, + /* 0 */ 22, 56, 149, 389, 417, 149, 417, 417, 417, 417, + /* 10 */ 119, 85, 417, 417, 417, 417, 417, 417, 417, 417, + /* 20 */ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, + /* 30 */ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, + /* 40 */ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, + /* 50 */ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, + /* 60 */ 417, 417, 417, 417, 417, 417, 417, 417, 417, 1441, + /* 70 */ 91, 129, 63, 1411, 1400, 91, 91, 91, 91, 91, + /* 80 */ 226, -6, 972, 996, 996, 996, 27, 27, 27, 27, + /* 90 */ 27, 27, 27, 27, 27, 27, 27, 111, 27, 111, + /* 100 */ 27, 111, 27, 422, 189, 124, 154, 159, 87, 87, + /* 110 */ 95, 87, 125, 177, 110, 87, 125, 124, 66, 96, /* 120 */ -5, 1, 84, 40, 33, 4, 1, 33, 4, 1, /* 130 */ -3, -5, }; -#define YY_REDUCE_USE_DFLT (-73) +#define YY_REDUCE_USE_DFLT (-74) #define YY_REDUCE_COUNT (81) -#define YY_REDUCE_MIN (-72) -#define YY_REDUCE_MAX (1663) +#define YY_REDUCE_MIN (-73) +#define YY_REDUCE_MAX (1656) static const short yy_reduce_ofst[] = { - /* 0 */ -72, -38, 169, 140, 115, 295, 267, 245, 220, 198, - /* 10 */ 882, 860, 826, 804, 782, 748, 726, 704, 670, 648, - /* 20 */ 626, 592, 570, 548, 514, 492, 470, 435, 412, 904, - /* 30 */ 960, 938, 982, 1016, 1038, 1082, 1060, 1371, 1348, 1326, - /* 40 */ 1301, 1282, 1259, 1237, 1212, 1193, 1170, 1148, 1123, 1104, - /* 50 */ 1437, 1415, 1390, 1482, 1460, 1663, 1655, 1636, 1628, 1609, - /* 60 */ 1601, 1582, 1574, 1555, 1547, 1528, 1518, 1509, 1490, -40, - /* 70 */ 328, 108, 273, 217, 217, 197, 193, 189, 160, 159, - /* 80 */ 73, 3, + /* 0 */ -73, -39, 199, 169, 143, 326, 298, 276, 250, 228, + /* 10 */ 807, 785, 763, 741, 719, 697, 675, 653, 631, 609, + /* 20 */ 587, 565, 543, 521, 499, 477, 455, 433, 408, 826, + /* 30 */ 864, 845, 886, 920, 964, 1008, 986, 1300, 1277, 1255, + /* 40 */ 1232, 1210, 1187, 1165, 1142, 1120, 1097, 1075, 1052, 1030, + /* 50 */ 1390, 1368, 1346, 1438, 1419, 1656, 1648, 1626, 1604, 1596, + /* 60 */ 1577, 1569, 1547, 1525, 1517, 1498, 1490, 1468, 1446, -41, + /* 70 */ 197, 140, 99, 142, 142, 120, 116, 114, 94, 83, + /* 80 */ 30, 2, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 333, 333, 333, 333, 319, 333, 326, 333, 333, 333, - /* 10 */ 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - /* 20 */ 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - /* 30 */ 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - /* 40 */ 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - /* 50 */ 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - /* 60 */ 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - /* 70 */ 333, 333, 297, 333, 333, 333, 333, 333, 333, 333, - /* 80 */ 333, 319, 293, 253, 255, 254, 269, 268, 267, 266, - /* 90 */ 265, 264, 263, 262, 261, 260, 256, 274, 259, 276, - /* 100 */ 258, 275, 257, 333, 333, 243, 333, 333, 270, 273, - /* 110 */ 333, 272, 251, 333, 293, 271, 252, 242, 240, 333, - /* 120 */ 303, 246, 333, 333, 249, 247, 244, 250, 248, 245, - /* 130 */ 333, 333, 329, 332, 331, 330, 220, 218, 224, 239, - /* 140 */ 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, - /* 150 */ 327, 328, 325, 324, 315, 313, 312, 317, 311, 322, - /* 160 */ 321, 320, 318, 316, 314, 310, 277, 309, 308, 307, - /* 170 */ 306, 305, 304, 303, 280, 302, 301, 299, 279, 323, - /* 180 */ 225, 300, 298, 296, 295, 294, 292, 291, 290, 289, - /* 190 */ 288, 287, 286, 285, 284, 283, 282, 281, 278, 241, - /* 200 */ 228, 227, 226, 223, 222, 221, 217, 214, 219, 216, - /* 210 */ 215, + /* 0 */ 336, 336, 330, 336, 320, 336, 327, 336, 336, 336, + /* 10 */ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + /* 20 */ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + /* 30 */ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + /* 40 */ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + /* 50 */ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + /* 60 */ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + /* 70 */ 336, 336, 298, 336, 336, 336, 336, 336, 336, 336, + /* 80 */ 336, 320, 294, 254, 256, 255, 270, 269, 268, 267, + /* 90 */ 266, 265, 264, 263, 262, 261, 257, 275, 260, 277, + /* 100 */ 259, 276, 258, 336, 336, 244, 336, 336, 271, 274, + /* 110 */ 336, 273, 252, 336, 294, 272, 253, 243, 241, 336, + /* 120 */ 304, 247, 336, 336, 250, 248, 245, 251, 249, 246, + /* 130 */ 336, 336, 331, 335, 334, 333, 332, 221, 219, 225, + /* 140 */ 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, + /* 150 */ 230, 328, 329, 326, 325, 316, 314, 313, 318, 312, + /* 160 */ 323, 322, 321, 319, 317, 315, 311, 278, 310, 309, + /* 170 */ 308, 307, 306, 305, 304, 281, 303, 302, 300, 280, + /* 180 */ 324, 226, 301, 299, 297, 296, 295, 293, 292, 291, + /* 190 */ 290, 289, 288, 287, 286, 285, 284, 283, 282, 279, + /* 200 */ 242, 229, 228, 227, 224, 223, 222, 218, 215, 220, + /* 210 */ 217, 216, }; /* The next table maps tokens into fallback tokens. If a construct @@ -668,16 +666,16 @@ static const char *const yyTokenName[] = { "DECR", "NOT", "BITWISE_NOT", "ADJUST", "EXACT", "PARTIAL", "UNSPLIT", "DECIMAL", "HEX_INTEGER", "STRING", "BOOLEAN", "NULL", - "BRACKETL", "BRACKETR", "DOT", "error", - "input", "query", "expression", "output_columns", - "query_element", "primary_expression", "assignment_expression", "conditional_expression", - "lefthand_side_expression", "logical_or_expression", "logical_and_expression", "bitwise_or_expression", - "bitwise_xor_expression", "bitwise_and_expression", "equality_expression", "relational_expression", - "shift_expression", "additive_expression", "multiplicative_expression", "unary_expression", - "postfix_expression", "call_expression", "member_expression", "arguments", - "member_expression_part", "object_literal", "array_literal", "elision", - "element_list", "property_name_and_value_list", "property_name_and_value", "property_name", - "argument_list", "output_column", + "BRACKETL", "BRACKETR", "DOT", "NONEXISTENT_COLUMN", + "error", "input", "query", "expression", + "output_columns", "query_element", "primary_expression", "assignment_expression", + "conditional_expression", "lefthand_side_expression", "logical_or_expression", "logical_and_expression", + "bitwise_or_expression", "bitwise_xor_expression", "bitwise_and_expression", "equality_expression", + "relational_expression", "shift_expression", "additive_expression", "multiplicative_expression", + "unary_expression", "postfix_expression", "call_expression", "member_expression", + "arguments", "member_expression_part", "object_literal", "array_literal", + "elision", "element_list", "property_name_and_value_list", "property_name_and_value", + "property_name", "argument_list", "output_column", }; #endif /* NDEBUG */ @@ -803,10 +801,12 @@ static const char *const yyRuleName[] = { /* 115 */ "argument_list ::=", /* 116 */ "argument_list ::= assignment_expression", /* 117 */ "argument_list ::= argument_list COMMA assignment_expression", - /* 118 */ "output_columns ::= output_column", - /* 119 */ "output_columns ::= output_columns COMMA output_column", - /* 120 */ "output_column ::= STAR", - /* 121 */ "output_column ::= assignment_expression", + /* 118 */ "output_columns ::=", + /* 119 */ "output_columns ::= output_column", + /* 120 */ "output_columns ::= output_columns COMMA output_column", + /* 121 */ "output_column ::= STAR", + /* 122 */ "output_column ::= NONEXISTENT_COLUMN", + /* 123 */ "output_column ::= assignment_expression", }; #endif /* NDEBUG */ @@ -1120,128 +1120,130 @@ 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[] = { - { 72, 1 }, - { 72, 1 }, - { 72, 2 }, + { 73, 1 }, { 73, 1 }, { 73, 2 }, - { 73, 3 }, - { 73, 3 }, - { 73, 3 }, - { 76, 1 }, - { 76, 3 }, - { 76, 2 }, - { 76, 3 }, - { 76, 3 }, - { 76, 2 }, { 74, 1 }, + { 74, 2 }, { 74, 3 }, - { 78, 1 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, - { 78, 3 }, + { 74, 3 }, + { 74, 3 }, + { 77, 1 }, + { 77, 3 }, + { 77, 2 }, + { 77, 3 }, + { 77, 3 }, + { 77, 2 }, + { 75, 1 }, + { 75, 3 }, { 79, 1 }, - { 79, 5 }, - { 81, 1 }, - { 81, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 79, 3 }, + { 80, 1 }, + { 80, 5 }, { 82, 1 }, { 82, 3 }, - { 82, 3 }, { 83, 1 }, { 83, 3 }, + { 83, 3 }, { 84, 1 }, { 84, 3 }, { 85, 1 }, { 85, 3 }, { 86, 1 }, { 86, 3 }, - { 86, 3 }, { 87, 1 }, { 87, 3 }, { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, - { 87, 3 }, { 88, 1 }, { 88, 3 }, { 88, 3 }, { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, + { 88, 3 }, { 89, 1 }, { 89, 3 }, { 89, 3 }, + { 89, 3 }, { 90, 1 }, { 90, 3 }, { 90, 3 }, - { 90, 3 }, { 91, 1 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, - { 91, 2 }, + { 91, 3 }, + { 91, 3 }, + { 91, 3 }, { 92, 1 }, { 92, 2 }, { 92, 2 }, - { 80, 1 }, - { 80, 1 }, + { 92, 2 }, + { 92, 2 }, + { 92, 2 }, + { 92, 2 }, + { 92, 2 }, + { 92, 2 }, + { 92, 2 }, + { 92, 2 }, + { 92, 2 }, + { 93, 1 }, + { 93, 2 }, { 93, 2 }, - { 94, 1 }, + { 81, 1 }, + { 81, 1 }, { 94, 2 }, - { 77, 1 }, - { 77, 3 }, - { 77, 1 }, - { 77, 1 }, - { 77, 1 }, - { 77, 1 }, - { 77, 1 }, - { 77, 1 }, - { 77, 1 }, - { 98, 3 }, - { 98, 4 }, - { 98, 3 }, - { 99, 1 }, - { 99, 2 }, + { 95, 1 }, + { 95, 2 }, + { 78, 1 }, + { 78, 3 }, + { 78, 1 }, + { 78, 1 }, + { 78, 1 }, + { 78, 1 }, + { 78, 1 }, + { 78, 1 }, + { 78, 1 }, + { 99, 3 }, + { 99, 4 }, + { 99, 3 }, { 100, 1 }, { 100, 2 }, - { 100, 3 }, - { 97, 3 }, - { 101, 0 }, + { 101, 1 }, + { 101, 2 }, { 101, 3 }, + { 98, 3 }, + { 102, 0 }, { 102, 3 }, - { 103, 1 }, - { 96, 3 }, - { 96, 2 }, - { 95, 3 }, - { 104, 0 }, + { 103, 3 }, { 104, 1 }, - { 104, 3 }, - { 75, 1 }, - { 75, 3 }, - { 105, 1 }, + { 97, 3 }, + { 97, 2 }, + { 96, 3 }, + { 105, 0 }, { 105, 1 }, + { 105, 3 }, + { 76, 0 }, + { 76, 1 }, + { 76, 3 }, + { 106, 1 }, + { 106, 1 }, + { 106, 1 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -1301,7 +1303,7 @@ static void yy_reduce( { grn_expr_append_op(efsi->ctx, efsi->e, grn_int32_value_at(&efsi->op_stack, -1), 2); } -#line 1305 "ecmascript.c" +#line 1307 "ecmascript.c" break; case 5: /* query ::= query LOGICAL_AND query_element */ case 34: /* logical_and_expression ::= logical_and_expression LOGICAL_AND bitwise_or_expression */ yytestcase(yyruleno==34); @@ -1309,7 +1311,7 @@ static void yy_reduce( { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND, 2); } -#line 1313 "ecmascript.c" +#line 1315 "ecmascript.c" break; case 6: /* query ::= query LOGICAL_AND_NOT query_element */ case 35: /* logical_and_expression ::= logical_and_expression LOGICAL_AND_NOT bitwise_or_expression */ yytestcase(yyruleno==35); @@ -1317,7 +1319,7 @@ static void yy_reduce( { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND_NOT, 2); } -#line 1321 "ecmascript.c" +#line 1323 "ecmascript.c" break; case 7: /* query ::= query LOGICAL_OR query_element */ case 32: /* logical_or_expression ::= logical_or_expression LOGICAL_OR logical_and_expression */ yytestcase(yyruleno==32); @@ -1325,7 +1327,7 @@ static void yy_reduce( { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_OR, 2); } -#line 1329 "ecmascript.c" +#line 1331 "ecmascript.c" break; case 10: /* query_element ::= RELATIVE_OP query_element */ #line 46 "ecmascript.y" @@ -1333,7 +1335,7 @@ static void yy_reduce( int mode; GRN_UINT32_POP(&efsi->mode_stack, mode); } -#line 1337 "ecmascript.c" +#line 1339 "ecmascript.c" break; case 11: /* query_element ::= IDENTIFIER RELATIVE_OP query_element */ #line 50 "ecmascript.y" @@ -1343,7 +1345,7 @@ static void yy_reduce( GRN_PTR_POP(&efsi->column_stack, c); GRN_UINT32_POP(&efsi->mode_stack, mode); } -#line 1347 "ecmascript.c" +#line 1349 "ecmascript.c" break; case 12: /* query_element ::= BRACEL expression BRACER */ case 13: /* query_element ::= EVAL primary_expression */ yytestcase(yyruleno==13); @@ -1351,99 +1353,98 @@ static void yy_reduce( { efsi->flags = efsi->default_flags; } -#line 1355 "ecmascript.c" +#line 1357 "ecmascript.c" break; case 15: /* expression ::= expression COMMA assignment_expression */ - case 119: /* output_columns ::= output_columns COMMA output_column */ yytestcase(yyruleno==119); #line 64 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_COMMA, 2); } -#line 1363 "ecmascript.c" +#line 1364 "ecmascript.c" break; case 17: /* assignment_expression ::= lefthand_side_expression ASSIGN assignment_expression */ #line 69 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_ASSIGN, 2); } -#line 1370 "ecmascript.c" +#line 1371 "ecmascript.c" break; case 18: /* assignment_expression ::= lefthand_side_expression STAR_ASSIGN assignment_expression */ #line 72 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_STAR_ASSIGN, 2); } -#line 1377 "ecmascript.c" +#line 1378 "ecmascript.c" break; case 19: /* assignment_expression ::= lefthand_side_expression SLASH_ASSIGN assignment_expression */ #line 75 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SLASH_ASSIGN, 2); } -#line 1384 "ecmascript.c" +#line 1385 "ecmascript.c" break; case 20: /* assignment_expression ::= lefthand_side_expression MOD_ASSIGN assignment_expression */ #line 78 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MOD_ASSIGN, 2); } -#line 1391 "ecmascript.c" +#line 1392 "ecmascript.c" break; case 21: /* assignment_expression ::= lefthand_side_expression PLUS_ASSIGN assignment_expression */ #line 81 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PLUS_ASSIGN, 2); } -#line 1398 "ecmascript.c" +#line 1399 "ecmascript.c" break; case 22: /* assignment_expression ::= lefthand_side_expression MINUS_ASSIGN assignment_expression */ #line 84 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MINUS_ASSIGN, 2); } -#line 1405 "ecmascript.c" +#line 1406 "ecmascript.c" break; case 23: /* assignment_expression ::= lefthand_side_expression SHIFTL_ASSIGN assignment_expression */ #line 87 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTL_ASSIGN, 2); } -#line 1412 "ecmascript.c" +#line 1413 "ecmascript.c" break; case 24: /* assignment_expression ::= lefthand_side_expression SHIFTR_ASSIGN assignment_expression */ #line 90 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTR_ASSIGN, 2); } -#line 1419 "ecmascript.c" +#line 1420 "ecmascript.c" break; case 25: /* assignment_expression ::= lefthand_side_expression SHIFTRR_ASSIGN assignment_expression */ #line 93 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTRR_ASSIGN, 2); } -#line 1426 "ecmascript.c" +#line 1427 "ecmascript.c" break; case 26: /* assignment_expression ::= lefthand_side_expression AND_ASSIGN assignment_expression */ #line 96 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND_ASSIGN, 2); } -#line 1433 "ecmascript.c" +#line 1434 "ecmascript.c" break; case 27: /* assignment_expression ::= lefthand_side_expression XOR_ASSIGN assignment_expression */ #line 99 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_XOR_ASSIGN, 2); } -#line 1440 "ecmascript.c" +#line 1441 "ecmascript.c" break; case 28: /* assignment_expression ::= lefthand_side_expression OR_ASSIGN assignment_expression */ #line 102 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_OR_ASSIGN, 2); } -#line 1447 "ecmascript.c" +#line 1448 "ecmascript.c" break; case 30: /* conditional_expression ::= logical_or_expression QUESTION assignment_expression COLON assignment_expression */ #line 107 "ecmascript.y" @@ -1452,196 +1453,196 @@ static void yy_reduce( e->codes[yymsp[-3].minor.yy0].nargs = yymsp[-1].minor.yy0 - yymsp[-3].minor.yy0; e->codes[yymsp[-1].minor.yy0].nargs = e->codes_curr - yymsp[-1].minor.yy0 - 1; } -#line 1456 "ecmascript.c" +#line 1457 "ecmascript.c" break; case 37: /* bitwise_or_expression ::= bitwise_or_expression BITWISE_OR bitwise_xor_expression */ #line 127 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_OR, 2); } -#line 1463 "ecmascript.c" +#line 1464 "ecmascript.c" break; case 39: /* bitwise_xor_expression ::= bitwise_xor_expression BITWISE_XOR bitwise_and_expression */ #line 132 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_XOR, 2); } -#line 1470 "ecmascript.c" +#line 1471 "ecmascript.c" break; case 41: /* bitwise_and_expression ::= bitwise_and_expression BITWISE_AND equality_expression */ #line 137 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_AND, 2); } -#line 1477 "ecmascript.c" +#line 1478 "ecmascript.c" break; case 43: /* equality_expression ::= equality_expression EQUAL relational_expression */ #line 142 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_EQUAL, 2); } -#line 1484 "ecmascript.c" +#line 1485 "ecmascript.c" break; case 44: /* equality_expression ::= equality_expression NOT_EQUAL relational_expression */ #line 145 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NOT_EQUAL, 2); } -#line 1491 "ecmascript.c" +#line 1492 "ecmascript.c" break; case 46: /* relational_expression ::= relational_expression LESS shift_expression */ #line 150 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_LESS, 2); } -#line 1498 "ecmascript.c" +#line 1499 "ecmascript.c" break; case 47: /* relational_expression ::= relational_expression GREATER shift_expression */ #line 153 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_GREATER, 2); } -#line 1505 "ecmascript.c" +#line 1506 "ecmascript.c" break; case 48: /* relational_expression ::= relational_expression LESS_EQUAL shift_expression */ #line 156 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_LESS_EQUAL, 2); } -#line 1512 "ecmascript.c" +#line 1513 "ecmascript.c" break; case 49: /* relational_expression ::= relational_expression GREATER_EQUAL shift_expression */ #line 159 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_GREATER_EQUAL, 2); } -#line 1519 "ecmascript.c" +#line 1520 "ecmascript.c" break; case 50: /* relational_expression ::= relational_expression IN shift_expression */ #line 162 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_IN, 2); } -#line 1526 "ecmascript.c" +#line 1527 "ecmascript.c" break; case 51: /* relational_expression ::= relational_expression MATCH shift_expression */ #line 165 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MATCH, 2); } -#line 1533 "ecmascript.c" +#line 1534 "ecmascript.c" break; case 52: /* relational_expression ::= relational_expression NEAR shift_expression */ #line 168 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NEAR, 2); } -#line 1540 "ecmascript.c" +#line 1541 "ecmascript.c" break; case 53: /* relational_expression ::= relational_expression NEAR2 shift_expression */ #line 171 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NEAR2, 2); } -#line 1547 "ecmascript.c" +#line 1548 "ecmascript.c" break; case 54: /* relational_expression ::= relational_expression SIMILAR shift_expression */ #line 174 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SIMILAR, 2); } -#line 1554 "ecmascript.c" +#line 1555 "ecmascript.c" break; case 55: /* relational_expression ::= relational_expression TERM_EXTRACT shift_expression */ #line 177 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_TERM_EXTRACT, 2); } -#line 1561 "ecmascript.c" +#line 1562 "ecmascript.c" break; case 56: /* relational_expression ::= relational_expression LCP shift_expression */ #line 180 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_LCP, 2); } -#line 1568 "ecmascript.c" +#line 1569 "ecmascript.c" break; case 57: /* relational_expression ::= relational_expression PREFIX shift_expression */ #line 183 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PREFIX, 2); } -#line 1575 "ecmascript.c" +#line 1576 "ecmascript.c" break; case 58: /* relational_expression ::= relational_expression SUFFIX shift_expression */ #line 186 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SUFFIX, 2); } -#line 1582 "ecmascript.c" +#line 1583 "ecmascript.c" break; case 60: /* shift_expression ::= shift_expression SHIFTL additive_expression */ #line 191 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTL, 2); } -#line 1589 "ecmascript.c" +#line 1590 "ecmascript.c" break; case 61: /* shift_expression ::= shift_expression SHIFTR additive_expression */ #line 194 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTR, 2); } -#line 1596 "ecmascript.c" +#line 1597 "ecmascript.c" break; case 62: /* shift_expression ::= shift_expression SHIFTRR additive_expression */ #line 197 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTRR, 2); } -#line 1603 "ecmascript.c" +#line 1604 "ecmascript.c" break; case 64: /* additive_expression ::= additive_expression PLUS multiplicative_expression */ #line 202 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PLUS, 2); } -#line 1610 "ecmascript.c" +#line 1611 "ecmascript.c" break; case 65: /* additive_expression ::= additive_expression MINUS multiplicative_expression */ #line 205 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MINUS, 2); } -#line 1617 "ecmascript.c" +#line 1618 "ecmascript.c" break; case 67: /* multiplicative_expression ::= multiplicative_expression STAR unary_expression */ #line 210 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_STAR, 2); } -#line 1624 "ecmascript.c" +#line 1625 "ecmascript.c" break; case 68: /* multiplicative_expression ::= multiplicative_expression SLASH unary_expression */ #line 213 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SLASH, 2); } -#line 1631 "ecmascript.c" +#line 1632 "ecmascript.c" break; case 69: /* multiplicative_expression ::= multiplicative_expression MOD unary_expression */ #line 216 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MOD, 2); } -#line 1638 "ecmascript.c" +#line 1639 "ecmascript.c" break; case 71: /* unary_expression ::= DELETE unary_expression */ #line 221 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_DELETE, 1); } -#line 1645 "ecmascript.c" +#line 1646 "ecmascript.c" break; case 72: /* unary_expression ::= INCR unary_expression */ #line 224 "ecmascript.y" @@ -1662,7 +1663,7 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_INCR, 1); } } -#line 1666 "ecmascript.c" +#line 1667 "ecmascript.c" break; case 73: /* unary_expression ::= DECR unary_expression */ #line 241 "ecmascript.y" @@ -1683,63 +1684,63 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_DECR, 1); } } -#line 1687 "ecmascript.c" +#line 1688 "ecmascript.c" break; case 74: /* unary_expression ::= PLUS unary_expression */ #line 258 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PLUS, 1); } -#line 1694 "ecmascript.c" +#line 1695 "ecmascript.c" break; case 75: /* unary_expression ::= MINUS unary_expression */ #line 261 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MINUS, 1); } -#line 1701 "ecmascript.c" +#line 1702 "ecmascript.c" break; case 76: /* unary_expression ::= NOT unary_expression */ #line 264 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NOT, 1); } -#line 1708 "ecmascript.c" +#line 1709 "ecmascript.c" break; case 77: /* unary_expression ::= BITWISE_NOT unary_expression */ #line 267 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_NOT, 1); } -#line 1715 "ecmascript.c" +#line 1716 "ecmascript.c" break; case 78: /* unary_expression ::= ADJUST unary_expression */ #line 270 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_ADJUST, 1); } -#line 1722 "ecmascript.c" +#line 1723 "ecmascript.c" break; case 79: /* unary_expression ::= EXACT unary_expression */ #line 273 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_EXACT, 1); } -#line 1729 "ecmascript.c" +#line 1730 "ecmascript.c" break; case 80: /* unary_expression ::= PARTIAL unary_expression */ #line 276 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PARTIAL, 1); } -#line 1736 "ecmascript.c" +#line 1737 "ecmascript.c" break; case 81: /* unary_expression ::= UNSPLIT unary_expression */ #line 279 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_UNSPLIT, 1); } -#line 1743 "ecmascript.c" +#line 1744 "ecmascript.c" break; case 83: /* postfix_expression ::= lefthand_side_expression INCR */ #line 284 "ecmascript.y" @@ -1760,7 +1761,7 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_INCR_POST, 1); } } -#line 1764 "ecmascript.c" +#line 1765 "ecmascript.c" break; case 84: /* postfix_expression ::= lefthand_side_expression DECR */ #line 301 "ecmascript.y" @@ -1781,41 +1782,121 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_DECR_POST, 1); } } -#line 1785 "ecmascript.c" +#line 1786 "ecmascript.c" break; case 87: /* call_expression ::= member_expression arguments */ #line 322 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_CALL, yymsp[0].minor.yy0); } -#line 1792 "ecmascript.c" +#line 1793 "ecmascript.c" break; case 114: /* arguments ::= PARENL argument_list PARENR */ #line 361 "ecmascript.y" { yygotominor.yy0 = yymsp[-1].minor.yy0; } -#line 1797 "ecmascript.c" +#line 1798 "ecmascript.c" break; case 115: /* argument_list ::= */ #line 362 "ecmascript.y" { yygotominor.yy0 = 0; } -#line 1802 "ecmascript.c" +#line 1803 "ecmascript.c" break; case 116: /* argument_list ::= assignment_expression */ #line 363 "ecmascript.y" { yygotominor.yy0 = 1; } -#line 1807 "ecmascript.c" +#line 1808 "ecmascript.c" break; case 117: /* argument_list ::= argument_list COMMA assignment_expression */ #line 364 "ecmascript.y" { yygotominor.yy0 = yymsp[-2].minor.yy0 + 1; } -#line 1812 "ecmascript.c" +#line 1813 "ecmascript.c" + break; + case 118: /* output_columns ::= */ +#line 366 "ecmascript.y" +{ + yygotominor.yy0 = 0; +} +#line 1820 "ecmascript.c" + break; + case 119: /* output_columns ::= output_column */ +#line 369 "ecmascript.y" +{ + if (yymsp[0].minor.yy0) { + yygotominor.yy0 = 0; + } else { + yygotominor.yy0 = 1; + } +} +#line 1831 "ecmascript.c" + break; + case 120: /* output_columns ::= output_columns COMMA output_column */ +#line 377 "ecmascript.y" +{ + if (yymsp[0].minor.yy0) { + yygotominor.yy0 = yymsp[-2].minor.yy0; + } else { + if (yymsp[-2].minor.yy0 == 1) { + grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_COMMA, 2); + } + yygotominor.yy0 = 1; + } +} +#line 1845 "ecmascript.c" + break; + case 121: /* output_column ::= STAR */ +#line 388 "ecmascript.y" +{ + grn_ctx *ctx = efsi->ctx; + grn_obj *expr = efsi->e; + grn_expr *e = (grn_expr *)expr; + grn_obj *variable = grn_expr_get_var_by_offset(ctx, expr, 0); + if (variable) { + grn_id table_id = GRN_OBJ_GET_DOMAIN(variable); + grn_obj *table = grn_ctx_at(ctx, table_id); + grn_obj columns_buffer; + grn_obj **columns; + int i, n_columns; + + GRN_PTR_INIT(&columns_buffer, GRN_OBJ_VECTOR, GRN_ID_NIL); + grn_obj_columns(ctx, table, "*", strlen("*"), &columns_buffer); + n_columns = GRN_BULK_VSIZE(&columns_buffer) / sizeof(grn_obj *); + columns = (grn_obj **)GRN_BULK_HEAD(&columns_buffer); + + for (i = 0; i < n_columns; i++) { + if (i > 0) { + grn_expr_append_op(ctx, expr, GRN_OP_COMMA, 2); + } + grn_expr_append_const(ctx, expr, columns[i], GRN_OP_GET_VALUE, 1); + GRN_PTR_PUT(ctx, &e->objs, columns[i]); + } + + GRN_OBJ_FIN(ctx, &columns_buffer); + + if (n_columns > 0) { + yygotominor.yy0 = GRN_FALSE; + } else { + yygotominor.yy0 = GRN_TRUE; + } + } else { + /* TODO: report error */ + yygotominor.yy0 = GRN_TRUE; + } +} +#line 1886 "ecmascript.c" + break; + case 122: /* output_column ::= NONEXISTENT_COLUMN */ +#line 425 "ecmascript.y" +{ + yygotominor.yy0 = GRN_TRUE; +} +#line 1893 "ecmascript.c" break; - case 120: /* output_column ::= STAR */ -#line 371 "ecmascript.y" + case 123: /* output_column ::= assignment_expression */ +#line 428 "ecmascript.y" { - grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_ALL_COLUMNS, 0); + yygotominor.yy0 = GRN_FALSE; } -#line 1819 "ecmascript.c" +#line 1900 "ecmascript.c" break; default: /* (0) input ::= query */ yytestcase(yyruleno==0); @@ -1867,8 +1948,6 @@ static void yy_reduce( /* (111) property_name ::= IDENTIFIER|STRING|DECIMAL */ yytestcase(yyruleno==111); /* (112) member_expression_part ::= BRACKETL expression BRACKETR */ yytestcase(yyruleno==112); /* (113) member_expression_part ::= DOT IDENTIFIER */ yytestcase(yyruleno==113); - /* (118) output_columns ::= output_column */ yytestcase(yyruleno==118); - /* (121) output_column ::= assignment_expression */ yytestcase(yyruleno==121); break; }; yygoto = yyRuleInfo[yyruleno].lhs; @@ -1941,7 +2020,7 @@ static void yy_syntax_error( GRN_OBJ_FIN(ctx, &buf); } } -#line 1945 "ecmascript.c" +#line 2024 "ecmascript.c" grn_expr_parserARG_STORE; /* Suppress warning about unused %extra_argument variable */ } Modified: lib/ecmascript.h (+1 -0) =================================================================== --- lib/ecmascript.h 2012-10-24 12:42:58 +0900 (77a434f) +++ lib/ecmascript.h 2012-10-24 14:04:11 +0900 (586e1e4) @@ -68,3 +68,4 @@ #define GRN_EXPR_TOKEN_BRACKETL 68 #define GRN_EXPR_TOKEN_BRACKETR 69 #define GRN_EXPR_TOKEN_DOT 70 +#define GRN_EXPR_TOKEN_NONEXISTENT_COLUMN 71 Modified: lib/ecmascript.y (+62 -6) =================================================================== --- lib/ecmascript.y 2012-10-24 12:42:58 +0900 (55a390b) +++ lib/ecmascript.y 2012-10-24 14:04:11 +0900 (16a8f0d) @@ -363,12 +363,68 @@ argument_list(A) ::= . { A = 0; } argument_list(A) ::= assignment_expression. { A = 1; } argument_list(A) ::= argument_list(B) COMMA assignment_expression. { A = B + 1; } -output_columns ::= output_column. -output_columns ::= output_columns COMMA output_column. { - grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_COMMA, 2); +output_columns(N_STACKED_COLUMNS) ::= . { + N_STACKED_COLUMNS = 0; +} +output_columns(N_STACKED_COLUMNS) ::= output_column(IGNORED). { + if (IGNORED) { + N_STACKED_COLUMNS = 0; + } else { + N_STACKED_COLUMNS = 1; + } +} +output_columns(N_STACKED_COLUMNS) ::= + output_columns(SUB_N_STACKED_COLUMNS) COMMA output_column(IGNORED). { + if (IGNORED) { + N_STACKED_COLUMNS = SUB_N_STACKED_COLUMNS; + } else { + if (SUB_N_STACKED_COLUMNS == 1) { + grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_COMMA, 2); + } + N_STACKED_COLUMNS = 1; + } } -output_column ::= STAR. { - grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_ALL_COLUMNS, 0); +output_column(IGNORED) ::= STAR. { + grn_ctx *ctx = efsi->ctx; + grn_obj *expr = efsi->e; + grn_expr *e = (grn_expr *)expr; + grn_obj *variable = grn_expr_get_var_by_offset(ctx, expr, 0); + if (variable) { + grn_id table_id = GRN_OBJ_GET_DOMAIN(variable); + grn_obj *table = grn_ctx_at(ctx, table_id); + grn_obj columns_buffer; + grn_obj **columns; + int i, n_columns; + + GRN_PTR_INIT(&columns_buffer, GRN_OBJ_VECTOR, GRN_ID_NIL); + grn_obj_columns(ctx, table, "*", strlen("*"), &columns_buffer); + n_columns = GRN_BULK_VSIZE(&columns_buffer) / sizeof(grn_obj *); + columns = (grn_obj **)GRN_BULK_HEAD(&columns_buffer); + + for (i = 0; i < n_columns; i++) { + if (i > 0) { + grn_expr_append_op(ctx, expr, GRN_OP_COMMA, 2); + } + grn_expr_append_const(ctx, expr, columns[i], GRN_OP_GET_VALUE, 1); + GRN_PTR_PUT(ctx, &e->objs, columns[i]); + } + + GRN_OBJ_FIN(ctx, &columns_buffer); + + if (n_columns > 0) { + IGNORED = GRN_FALSE; + } else { + IGNORED = GRN_TRUE; + } + } else { + /* TODO: report error */ + IGNORED = GRN_TRUE; + } +} +output_column(IGNORED) ::= NONEXISTENT_COLUMN. { + IGNORED = GRN_TRUE; +} +output_column(IGNORED) ::= assignment_expression. { + IGNORED = GRN_FALSE; } -output_column ::= assignment_expression. Modified: lib/expr.c (+8 -62) =================================================================== --- lib/expr.c 2012-10-24 12:42:58 +0900 (a6ed179) +++ lib/expr.c 2012-10-24 14:04:11 +0900 (41fe598) @@ -236,8 +236,7 @@ static const char *opstrs[] = { "TABLE_SELECT", "TABLE_SORT", "TABLE_GROUP", - "JSON_PUT", - "ALL_COLUMNS" + "JSON_PUT" }; static void @@ -1194,44 +1193,6 @@ grn_expr_append_obj(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, case GRN_OP_COMMA : PUSH_CODE(e, op, obj, nargs, code); break; - case GRN_OP_ALL_COLUMNS : - if (nargs == 0) { - grn_obj *variable = grn_expr_get_var_by_offset(ctx, expr, 0); - if (variable) { - grn_id table_id = GRN_OBJ_GET_DOMAIN(variable); - grn_obj *table = grn_ctx_at(ctx, table_id); - grn_obj columns_buffer; - grn_obj **columns; - int i, n_columns; - - GRN_PTR_INIT(&columns_buffer, GRN_OBJ_VECTOR, GRN_ID_NIL); - grn_obj_columns(ctx, table, "*", strlen("*"), &columns_buffer); - n_columns = GRN_BULK_VSIZE(&columns_buffer) / sizeof(grn_obj *); - columns = (grn_obj **)GRN_BULK_HEAD(&columns_buffer); - - if (n_columns == 0) { - if (e->codes_curr > 0 && - e->codes[e->codes_curr - 1].op == GRN_OP_COMMA) { - e->codes_curr--; - } - } else { - for (i = 0; i < n_columns; i++) { - if (i > 0) { - grn_expr_append_op(ctx, expr, GRN_OP_COMMA, 2); - } - grn_expr_append_const(ctx, expr, columns[i], GRN_OP_GET_VALUE, 1); - GRN_PTR_PUT(ctx, &e->objs, columns[i]); - } - } - - GRN_OBJ_FIN(ctx, &columns_buffer); - } else { - /* TODO: report error */ - } - } else { - /* TODO: report error */ - } - break; default : break; } @@ -5325,7 +5286,11 @@ done : grn_expr_append_obj(ctx, q->e, obj, GRN_OP_PUSH, 1); goto exit; } - rc = GRN_SYNTAX_ERROR; + if (q->flags & GRN_EXPR_SYNTAX_OUTPUT_COLUMNS) { + PARSE(GRN_EXPR_TOKEN_NONEXISTENT_COLUMN); + } else { + rc = GRN_SYNTAX_ERROR; + } } exit : q->cur = s; @@ -5344,8 +5309,6 @@ static grn_rc parse_script(grn_ctx *ctx, efs_info *q) { grn_rc rc = GRN_SUCCESS; - grn_bool ignore_unknown_identifier = GRN_FALSE; - grn_bool skip_next_comma = GRN_FALSE; for (;;) { skip_space(ctx, q); if (q->cur >= q->str_end) { rc = GRN_END_OF_DATA; goto exit; } @@ -5380,9 +5343,7 @@ parse_script(grn_ctx *ctx, efs_info *q) break; case ',' : q->cur++; - if (!skip_next_comma) { - PARSE(GRN_EXPR_TOKEN_COMMA); - } + PARSE(GRN_EXPR_TOKEN_COMMA); break; case '.' : q->cur++; @@ -5760,25 +5721,10 @@ parse_script(grn_ctx *ctx, efs_info *q) } break; default : - if ((rc = get_identifier(ctx, q))) { - if (rc == GRN_SYNTAX_ERROR && - q->flags & GRN_EXPR_SYNTAX_OUTPUT_COLUMNS) { - ignore_unknown_identifier = GRN_TRUE; - rc = GRN_SUCCESS; - } else { - goto exit; - } - } + if ((rc = get_identifier(ctx, q))) { goto exit; } break; } if (ctx->rc) { rc = ctx->rc; break; } - - if (ignore_unknown_identifier) { - skip_next_comma = GRN_TRUE; - ignore_unknown_identifier = GRN_FALSE; - } else { - skip_next_comma = GRN_FALSE; - } } exit : PARSE(0); Modified: lib/output.c (+18 -0) =================================================================== --- lib/output.c 2012-10-24 12:42:58 +0900 (e3c6f54) +++ lib/output.c 2012-10-24 14:04:11 +0900 (068fa47) @@ -1041,6 +1041,7 @@ grn_output_table_columns_by_expression(grn_ctx *ctx, grn_obj *outbuf, int n_elements; int previous_comma_offset = -1; grn_bool is_first_comma = GRN_TRUE; + grn_bool have_comma = GRN_FALSE; grn_expr *expr = (grn_expr *)format->expression; grn_expr_code *code; grn_expr_code *code_end = expr->codes + expr->codes_curr; @@ -1055,6 +1056,7 @@ grn_output_table_columns_by_expression(grn_ctx *ctx, grn_obj *outbuf, continue; } + have_comma = GRN_TRUE; code_start_offset = previous_comma_offset + 1; if (is_first_comma) { int code_end_offset; @@ -1083,6 +1085,12 @@ grn_output_table_columns_by_expression(grn_ctx *ctx, grn_obj *outbuf, expr->codes[code_start_offset].value, buf); previous_comma_offset = code - expr->codes; } + + if (!have_comma && expr->codes_curr > 0) { + grn_output_table_column(ctx, outbuf, output_type, + expr->codes[0].value, buf); + } + grn_output_array_close(ctx, outbuf, output_type); } @@ -1138,6 +1146,7 @@ grn_output_table_records_by_expression(grn_ctx *ctx, grn_obj *outbuf, while (!grn_table_cursor_next_o(ctx, tc, record)) { int previous_comma_offset = -1; grn_bool is_first_comma = GRN_TRUE; + grn_bool have_comma = GRN_FALSE; grn_output_array_open(ctx, outbuf, output_type, "HIT", n_elements); for (code = expr->codes; code < code_end; code++) { if (code->op == GRN_OP_COMMA) { @@ -1145,6 +1154,8 @@ grn_output_table_records_by_expression(grn_ctx *ctx, grn_obj *outbuf, int code_start_offset = previous_comma_offset + 1; int code_end_offset = code - expr->codes - code_start_offset; int original_codes_curr = expr->codes_curr; + + have_comma = GRN_TRUE; if (is_first_comma) { expr->codes_curr = code_end_offset - 1; while (expr->codes_curr > previous_comma_offset) { @@ -1172,6 +1183,13 @@ grn_output_table_records_by_expression(grn_ctx *ctx, grn_obj *outbuf, previous_comma_offset = code - expr->codes; } } + + if (!have_comma && expr->codes_curr > 0) { + grn_obj *res; + res = grn_expr_exec(ctx, format->expression, 0); + grn_output_obj(ctx, outbuf, output_type, res, NULL); + } + grn_output_array_close(ctx, outbuf, output_type); GRN_BULK_REWIND(record); } Added: test/command/suite/select/output_columns/none.expected (+13 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/none.expected 2012-10-24 14:04:11 +0900 (c850c99) @@ -0,0 +1,13 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns ' ' +[[0,0.0,0.0],[[[2],[],[],[]]]] Added: test/command/suite/select/output_columns/none.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/none.test 2012-10-24 14:04:11 +0900 (40227f2) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns ' ' Added: test/command/suite/select/output_columns/nonexistent/all.expected (+13 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/all.expected 2012-10-24 14:04:11 +0900 (83b4e7c) @@ -0,0 +1,13 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns 'nonexistent1, nonexistent2, nonexistent3' +[[0,0.0,0.0],[[[2],[],[],[]]]] Added: test/command/suite/select/output_columns/nonexistent/all.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/all.test 2012-10-24 14:04:11 +0900 (dbed16b) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns 'nonexistent1, nonexistent2, nonexistent3' Added: test/command/suite/select/output_columns/nonexistent/first.expected (+13 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/first.expected 2012-10-24 14:04:11 +0900 (b275bbd) @@ -0,0 +1,13 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns 'nonexistent, _key' +[[0,0.0,0.0],[[[2],[["_key","ShortText"]],["groonga"],["razil"]]]] Added: test/command/suite/select/output_columns/nonexistent/first.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/first.test 2012-10-24 14:04:11 +0900 (2decc0d) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns 'nonexistent, _key' Added: test/command/suite/select/output_columns/nonexistent/last.expected (+44 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/last.expected 2012-10-24 14:04:11 +0900 (ccaf3be) @@ -0,0 +1,44 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '_id, _key, nonexistent' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "_key", + "ShortText" + ] + ], + [ + 1, + "groonga" + ], + [ + 2, + "razil" + ] + ] + ] +] Added: test/command/suite/select/output_columns/nonexistent/last.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/last.test 2012-10-24 14:04:11 +0900 (b4ca49a) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns '_id, _key, nonexistent' Added: test/command/suite/select/output_columns/nonexistent/middle.expected (+50 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/middle.expected 2012-10-24 14:04:11 +0900 (0dba827) @@ -0,0 +1,50 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '_id, _key, nonexistent, uri' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "_key", + "ShortText" + ], + [ + "uri", + "ShortText" + ] + ], + [ + 1, + "groonga", + "http://groonga.org/" + ], + [ + 2, + "razil", + "http://razil.jp/" + ] + ] + ] +] Added: test/command/suite/select/output_columns/nonexistent/middle.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/middle.test 2012-10-24 14:04:11 +0900 (da3cdba) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns '_id, _key, nonexistent, uri' Added: test/command/suite/select/output_columns/nonexistent/only.expected (+13 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/only.expected 2012-10-24 14:04:11 +0900 (b6af6bd) @@ -0,0 +1,13 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns 'nonexistent' +[[0,0.0,0.0],[[[2],[],[],[]]]] Added: test/command/suite/select/output_columns/nonexistent/only.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/nonexistent/only.test 2012-10-24 14:04:11 +0900 (200ad89) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns 'nonexistent' Added: test/command/suite/select/output_columns/star/first.expected (+44 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/first.expected 2012-10-24 14:04:11 +0900 (c7c5076) @@ -0,0 +1,44 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '*, _key' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "uri", + "ShortText" + ], + [ + "_key", + "ShortText" + ] + ], + [ + "http://groonga.org/", + "groonga" + ], + [ + "http://razil.jp/", + "razil" + ] + ] + ] +] Added: test/command/suite/select/output_columns/star/first.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/first.test 2012-10-24 14:04:11 +0900 (be6c119) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns '*, _key' Added: test/command/suite/select/output_columns/star/last.expected (+50 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/last.expected 2012-10-24 14:04:11 +0900 (148a83b) @@ -0,0 +1,50 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '_id, _key, *' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "_key", + "ShortText" + ], + [ + "uri", + "ShortText" + ] + ], + [ + 1, + "groonga", + "http://groonga.org/" + ], + [ + 2, + "razil", + "http://razil.jp/" + ] + ] + ] +] Added: test/command/suite/select/output_columns/star/last.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/last.test 2012-10-24 14:04:11 +0900 (268341b) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns '_id, _key, *' Added: test/command/suite/select/output_columns/star/middle.expected (+50 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/middle.expected 2012-10-24 14:04:11 +0900 (b2e75ab) @@ -0,0 +1,50 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '_id, *, _key' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "uri", + "ShortText" + ], + [ + "_key", + "ShortText" + ] + ], + [ + 1, + "http://groonga.org/", + "groonga" + ], + [ + 2, + "http://razil.jp/", + "razil" + ] + ] + ] +] Added: test/command/suite/select/output_columns/star/middle.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/middle.test 2012-10-24 14:04:11 +0900 (e5e867e) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns '_id, *, _key' Added: test/command/suite/select/output_columns/star/no_column/first.expected (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/first.expected 2012-10-24 14:04:11 +0900 (f72374f) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '*, _key' +[[0,0.0,0.0],[[[2],[["_key","ShortText"]],["groonga"],["razil"]]]] Added: test/command/suite/select/output_columns/star/no_column/first.test (+10 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/first.test 2012-10-24 14:04:11 +0900 (1f6bf9e) @@ -0,0 +1,10 @@ +table_create Sites TABLE_HASH_KEY ShortText + +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] + +select Sites --output_columns '*, _key' Added: test/command/suite/select/output_columns/star/no_column/last.expected (+42 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/last.expected 2012-10-24 14:04:11 +0900 (ce55d8a) @@ -0,0 +1,42 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '_id, _key, *' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "_key", + "ShortText" + ] + ], + [ + 1, + "groonga" + ], + [ + 2, + "razil" + ] + ] + ] +] Added: test/command/suite/select/output_columns/star/no_column/last.test (+10 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/last.test 2012-10-24 14:04:11 +0900 (c5a269a) @@ -0,0 +1,10 @@ +table_create Sites TABLE_HASH_KEY ShortText + +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] + +select Sites --output_columns '_id, _key, *' Added: test/command/suite/select/output_columns/star/no_column/middle.expected (+42 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/middle.expected 2012-10-24 14:04:11 +0900 (5ff7288) @@ -0,0 +1,42 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '_id, *, _key' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "_key", + "ShortText" + ] + ], + [ + 1, + "groonga" + ], + [ + 2, + "razil" + ] + ] + ] +] Added: test/command/suite/select/output_columns/star/no_column/middle.test (+10 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/middle.test 2012-10-24 14:04:11 +0900 (36204ec) @@ -0,0 +1,10 @@ +table_create Sites TABLE_HASH_KEY ShortText + +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] + +select Sites --output_columns '_id, *, _key' Added: test/command/suite/select/output_columns/star/no_column/only.expected (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/only.expected 2012-10-24 14:04:11 +0900 (d1f3e8d) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '*' +[[0,0.0,0.0],[[[2],[],[],[]]]] Added: test/command/suite/select/output_columns/star/no_column/only.test (+10 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/no_column/only.test 2012-10-24 14:04:11 +0900 (46a56c7) @@ -0,0 +1,10 @@ +table_create Sites TABLE_HASH_KEY ShortText + +load --table Sites +[ +["_key"], +["groonga"], +["razil"] +] + +select Sites --output_columns '*' Added: test/command/suite/select/output_columns/star/only.expected (+38 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/only.expected 2012-10-24 14:04:11 +0900 (959c150) @@ -0,0 +1,38 @@ +table_create Sites TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +column_create Sites uri COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] +[[0,0.0,0.0],2] +select Sites --output_columns '*' +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "uri", + "ShortText" + ] + ], + [ + "http://groonga.org/" + ], + [ + "http://razil.jp/" + ] + ] + ] +] Added: test/command/suite/select/output_columns/star/only.test (+11 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/select/output_columns/star/only.test 2012-10-24 14:04:11 +0900 (c3f2c9f) @@ -0,0 +1,11 @@ +table_create Sites TABLE_HASH_KEY ShortText +column_create Sites uri COLUMN_SCALAR ShortText + +load --table Sites +[ +["_key","uri"], +["groonga","http://groonga.org/"], +["razil","http://razil.jp/"] +] + +select Sites --output_columns '*'