null+****@clear*****
null+****@clear*****
2012年 7月 24日 (火) 17:03:33 JST
Kouhei Sutou 2012-07-24 17:03:33 +0900 (Tue, 24 Jul 2012) New Revision: 1d5dc999331b92367eec6de2ceefe092e08a271c https://github.com/groonga/groonga/commit/1d5dc999331b92367eec6de2ceefe092e08a271c Log: BUT -> AND_NOT GRN_OP_BUT and GRN_QUERY_BUT are deprecated. They are still available but don't use them in newly written code. Modified files: include/groonga.h lib/db.c lib/ecmascript.c lib/ecmascript.h lib/ecmascript.y lib/expr.c lib/ii.c lib/proc.c Modified: include/groonga.h (+12 -5) =================================================================== --- include/groonga.h 2012-07-24 16:50:47 +0900 (a18a40d) +++ include/groonga.h 2012-07-24 17:03:33 +0900 (3030d86) @@ -1109,7 +1109,9 @@ typedef enum { GRN_OP_GET_REF, GRN_OP_GET_VALUE, GRN_OP_AND, - GRN_OP_BUT, + GRN_OP_AND_NOT, + /* Deprecated. Just for backward compatibility. */ +#define GRN_OP_BUT GRN_OP_AND_NOT GRN_OP_OR, GRN_OP_ASSIGN, GRN_OP_STAR_ASSIGN, @@ -1699,7 +1701,7 @@ GRN_API grn_id grn_obj_id(grn_ctx *ctx, grn_obj *obj); * @obj: 検索対象のobject * @query: 検索クエリ * @res: 検索結果を格納するテーブル - * @op: GRN_OP_OR, GRN_OP_AND, GRN_OP_BUT, GRN_OP_ADJUSTのいずれかを指定する + * @op: GRN_OP_OR, GRN_OP_AND, GRN_OP_AND_NOT, GRN_OP_ADJUSTのいずれかを指定する * @optarg: 詳細検索条件 * * objを対象としてqueryにマッチするレコードを検索し、 @@ -1931,9 +1933,14 @@ GRN_API grn_posting *grn_geo_cursor_next(grn_ctx *ctx, grn_obj *cursor); #ifndef GRN_QUERY_AND #define GRN_QUERY_AND '+' #endif /* GRN_QUERY_AND */ -#ifndef GRN_QUERY_BUT -#define GRN_QUERY_BUT '-' -#endif /* GRN_QUERY_BUT */ +#ifndef GRN_QUERY_AND_NOT +# ifdef GRN_QUERY_BUT + /* Deprecated. Just for backward compatibility. */ +# define GRN_QUERY_AND_NOT GRN_QUERY_BUT +# else +# define GRN_QUERY_AND_NOT '-' +# endif /* GRN_QUERY_BUT */ +#endif /* GRN_QUERY_AND_NOT */ #ifndef GRN_QUERY_ADJ_INC #define GRN_QUERY_ADJ_INC '>' #endif /* GRN_QUERY_ADJ_POS2 */ Modified: lib/db.c (+1 -1) =================================================================== --- lib/db.c 2012-07-24 16:50:47 +0900 (3c78188) +++ lib/db.c 2012-07-24 17:03:33 +0900 (f32d224) @@ -3229,7 +3229,7 @@ grn_table_setoperation(grn_ctx *ctx, grn_obj *table1, grn_obj *table2, grn_obj * } }); break; - case GRN_OP_BUT : + case GRN_OP_AND_NOT : GRN_TABLE_EACH(ctx, table2, 0, 0, id, &key, &key_size, &value2, { grn_table_delete(ctx, table1, key, key_size); }); Modified: lib/ecmascript.c (+601 -517) =================================================================== --- lib/ecmascript.c 2012-07-24 16:50:47 +0900 (59be384) +++ lib/ecmascript.c 2012-07-24 17:03:33 +0900 (7405be0) @@ -1,13 +1,13 @@ /* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ -/* First off, code is include which follows the "include" declaration -** in the input file. */ +/* First off, code is included that follows the "include" declaration +** in the input grammar file. */ #include <stdio.h> #line 3 "ecmascript.y" #define assert GRN_ASSERT -#line 13 "ecmascript.c" +#line 11 "ecmascript.c" /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -62,6 +62,7 @@ #define YYACTIONTYPE unsigned short int #define grn_expr_parserTOKENTYPE int typedef union { + int yyinit; grn_expr_parserTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH @@ -79,9 +80,22 @@ typedef union { /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ -static const YYMINORTYPE yyzerominor; +static const YYMINORTYPE yyzerominor = { 0 }; -/* Next are that tables used to determine what action to take based on the +/* Define the yytestcase() macro to be a no-op if is not already defined +** otherwise. +** +** Applications can choose to define yytestcase() in the %include section +** to a macro that can assist in verifying code coverage. For production +** code the yytestcase() macro should be turned off. But it is useful +** for testing. +*/ +#ifndef yytestcase +# define yytestcase(X) +#endif + + +/* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. @@ -128,390 +142,412 @@ static const YYMINORTYPE yyzerominor; ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ +#define YY_ACTTAB_COUNT (1683) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 322, 71, 116, 132, 162, 159, 138, 80, 102, 103, - /* 10 */ 122, 123, 124, 108, 83, 90, 112, 89, 173, 142, - /* 20 */ 156, 69, 178, 125, 163, 167, 131, 1, 129, 75, - /* 30 */ 128, 3, 130, 67, 72, 110, 132, 162, 159, 138, - /* 40 */ 80, 102, 103, 122, 123, 124, 108, 83, 90, 112, - /* 50 */ 89, 173, 142, 156, 69, 28, 29, 163, 167, 73, - /* 60 */ 74, 77, 131, 68, 203, 75, 117, 4, 133, 67, - /* 70 */ 57, 58, 48, 49, 50, 54, 55, 56, 59, 60, - /* 80 */ 61, 62, 63, 64, 168, 169, 170, 171, 172, 2, - /* 90 */ 162, 185, 138, 80, 102, 103, 122, 123, 124, 108, - /* 100 */ 83, 90, 112, 89, 173, 142, 156, 69, 184, 10, - /* 110 */ 163, 167, 8, 78, 101, 9, 162, 159, 138, 80, - /* 120 */ 102, 103, 122, 123, 124, 108, 83, 90, 112, 89, - /* 130 */ 173, 142, 156, 69, 134, 6, 163, 167, 166, 79, - /* 140 */ 113, 136, 175, 10, 101, 113, 162, 159, 138, 80, - /* 150 */ 102, 103, 122, 123, 124, 108, 83, 90, 112, 89, - /* 160 */ 173, 142, 156, 69, 183, 160, 163, 167, 131, 68, - /* 170 */ 76, 75, 117, 4, 72, 67, 132, 135, 57, 58, - /* 180 */ 201, 157, 158, 54, 55, 56, 59, 60, 61, 62, - /* 190 */ 63, 64, 168, 169, 170, 171, 172, 2, 174, 6, - /* 200 */ 163, 167, 166, 79, 27, 107, 175, 162, 159, 138, - /* 210 */ 80, 102, 103, 122, 123, 124, 108, 83, 90, 112, - /* 220 */ 89, 173, 142, 156, 69, 202, 12, 163, 167, 35, - /* 230 */ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - /* 240 */ 46, 47, 57, 58, 33, 34, 7, 54, 55, 56, - /* 250 */ 59, 60, 61, 62, 63, 64, 168, 169, 170, 171, - /* 260 */ 172, 2, 181, 6, 51, 52, 166, 79, 13, 110, - /* 270 */ 184, 162, 159, 138, 80, 102, 103, 122, 123, 124, - /* 280 */ 108, 83, 90, 112, 89, 173, 142, 156, 69, 154, - /* 290 */ 155, 163, 167, 204, 73, 74, 77, 131, 68, 30, - /* 300 */ 75, 117, 4, 164, 67, 31, 57, 58, 5, 10, - /* 310 */ 126, 54, 55, 56, 59, 60, 61, 62, 63, 64, - /* 320 */ 168, 169, 170, 171, 172, 2, 162, 189, 138, 80, - /* 330 */ 102, 103, 122, 123, 124, 108, 83, 90, 112, 89, - /* 340 */ 173, 142, 156, 69, 187, 6, 163, 167, 166, 79, - /* 350 */ 15, 32, 186, 114, 162, 176, 138, 80, 102, 103, - /* 360 */ 122, 123, 124, 108, 83, 90, 112, 89, 173, 142, - /* 370 */ 156, 69, 205, 14, 163, 167, 53, 65, 66, 177, - /* 380 */ 323, 70, 323, 323, 10, 323, 323, 323, 57, 58, - /* 390 */ 323, 323, 323, 54, 55, 56, 59, 60, 61, 62, - /* 400 */ 63, 64, 168, 169, 170, 171, 172, 2, 162, 182, - /* 410 */ 138, 80, 102, 103, 122, 123, 124, 108, 83, 90, - /* 420 */ 112, 89, 173, 142, 156, 69, 323, 323, 163, 167, - /* 430 */ 162, 137, 138, 80, 102, 103, 122, 123, 124, 108, - /* 440 */ 83, 90, 112, 89, 173, 142, 156, 69, 323, 323, - /* 450 */ 163, 167, 323, 323, 323, 323, 323, 323, 323, 323, - /* 460 */ 323, 323, 323, 323, 162, 139, 138, 80, 102, 103, - /* 470 */ 122, 123, 124, 108, 83, 90, 112, 89, 173, 142, - /* 480 */ 156, 69, 180, 323, 163, 167, 162, 118, 138, 80, - /* 490 */ 102, 103, 122, 123, 124, 108, 83, 90, 112, 89, - /* 500 */ 173, 142, 156, 69, 323, 323, 163, 167, 162, 140, - /* 510 */ 138, 80, 102, 103, 122, 123, 124, 108, 83, 90, - /* 520 */ 112, 89, 173, 142, 156, 69, 323, 323, 163, 167, - /* 530 */ 323, 323, 323, 323, 323, 323, 180, 323, 180, 323, - /* 540 */ 162, 179, 138, 80, 102, 103, 122, 123, 124, 108, - /* 550 */ 83, 90, 112, 89, 173, 142, 156, 69, 323, 323, - /* 560 */ 163, 167, 162, 188, 138, 80, 102, 103, 122, 123, - /* 570 */ 124, 108, 83, 90, 112, 89, 173, 142, 156, 69, - /* 580 */ 323, 323, 163, 167, 162, 190, 138, 80, 102, 103, - /* 590 */ 122, 123, 124, 108, 83, 90, 112, 89, 173, 142, - /* 600 */ 156, 69, 323, 323, 163, 167, 323, 323, 323, 323, - /* 610 */ 323, 323, 323, 323, 323, 323, 162, 191, 138, 80, - /* 620 */ 102, 103, 122, 123, 124, 108, 83, 90, 112, 89, - /* 630 */ 173, 142, 156, 69, 323, 323, 163, 167, 162, 192, - /* 640 */ 138, 80, 102, 103, 122, 123, 124, 108, 83, 90, - /* 650 */ 112, 89, 173, 142, 156, 69, 323, 323, 163, 167, - /* 660 */ 162, 193, 138, 80, 102, 103, 122, 123, 124, 108, - /* 670 */ 83, 90, 112, 89, 173, 142, 156, 69, 323, 323, - /* 680 */ 163, 167, 323, 323, 323, 323, 323, 323, 323, 323, - /* 690 */ 323, 323, 162, 194, 138, 80, 102, 103, 122, 123, - /* 700 */ 124, 108, 83, 90, 112, 89, 173, 142, 156, 69, - /* 710 */ 323, 323, 163, 167, 162, 195, 138, 80, 102, 103, - /* 720 */ 122, 123, 124, 108, 83, 90, 112, 89, 173, 142, - /* 730 */ 156, 69, 323, 323, 163, 167, 162, 196, 138, 80, - /* 740 */ 102, 103, 122, 123, 124, 108, 83, 90, 112, 89, - /* 750 */ 173, 142, 156, 69, 323, 323, 163, 167, 323, 323, - /* 760 */ 323, 323, 323, 323, 323, 323, 323, 323, 162, 197, - /* 770 */ 138, 80, 102, 103, 122, 123, 124, 108, 83, 90, - /* 780 */ 112, 89, 173, 142, 156, 69, 323, 323, 163, 167, - /* 790 */ 162, 198, 138, 80, 102, 103, 122, 123, 124, 108, - /* 800 */ 83, 90, 112, 89, 173, 142, 156, 69, 323, 323, - /* 810 */ 163, 167, 162, 199, 138, 80, 102, 103, 122, 123, - /* 820 */ 124, 108, 83, 90, 112, 89, 173, 142, 156, 69, - /* 830 */ 323, 323, 163, 167, 323, 323, 323, 323, 323, 323, - /* 840 */ 323, 323, 323, 323, 162, 200, 138, 80, 102, 103, - /* 850 */ 122, 123, 124, 108, 83, 90, 112, 89, 173, 142, - /* 860 */ 156, 69, 323, 323, 163, 167, 162, 323, 323, 106, - /* 870 */ 323, 115, 122, 123, 124, 108, 83, 90, 112, 89, - /* 880 */ 173, 142, 156, 69, 323, 323, 163, 167, 162, 323, - /* 890 */ 323, 106, 323, 323, 119, 123, 124, 108, 83, 90, - /* 900 */ 112, 89, 173, 142, 156, 69, 323, 323, 163, 167, - /* 910 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - /* 920 */ 162, 323, 323, 106, 323, 323, 127, 123, 124, 108, - /* 930 */ 83, 90, 112, 89, 173, 142, 156, 69, 323, 323, - /* 940 */ 163, 167, 162, 323, 323, 106, 323, 323, 323, 120, - /* 950 */ 124, 108, 83, 90, 112, 89, 173, 142, 156, 69, - /* 960 */ 323, 323, 163, 167, 162, 323, 323, 106, 323, 323, - /* 970 */ 323, 323, 121, 108, 83, 90, 112, 89, 173, 142, - /* 980 */ 156, 69, 323, 323, 163, 167, 11, 16, 17, 18, - /* 990 */ 19, 20, 21, 22, 23, 24, 25, 26, 323, 162, - /* 1000 */ 323, 323, 106, 323, 323, 323, 323, 323, 104, 83, - /* 1010 */ 90, 112, 89, 173, 142, 156, 69, 323, 323, 163, - /* 1020 */ 167, 162, 323, 323, 106, 323, 323, 154, 155, 323, - /* 1030 */ 323, 81, 90, 112, 89, 173, 142, 156, 69, 323, - /* 1040 */ 162, 163, 167, 106, 323, 323, 323, 323, 323, 323, - /* 1050 */ 82, 90, 112, 89, 173, 142, 156, 69, 323, 323, - /* 1060 */ 163, 167, 162, 323, 323, 106, 323, 323, 323, 323, - /* 1070 */ 323, 323, 323, 84, 112, 89, 173, 142, 156, 69, - /* 1080 */ 323, 323, 163, 167, 162, 323, 323, 106, 323, 323, - /* 1090 */ 323, 323, 323, 323, 323, 86, 112, 89, 173, 142, - /* 1100 */ 156, 69, 323, 162, 163, 167, 106, 323, 323, 323, - /* 1110 */ 323, 323, 323, 323, 88, 112, 89, 173, 142, 156, - /* 1120 */ 69, 323, 323, 163, 167, 323, 162, 323, 323, 106, - /* 1130 */ 323, 323, 323, 323, 323, 323, 323, 91, 112, 89, - /* 1140 */ 173, 142, 156, 69, 323, 323, 163, 167, 323, 162, - /* 1150 */ 323, 323, 106, 323, 323, 323, 323, 323, 323, 323, - /* 1160 */ 92, 112, 89, 173, 142, 156, 69, 323, 323, 163, - /* 1170 */ 167, 162, 323, 323, 106, 323, 323, 323, 323, 323, - /* 1180 */ 323, 323, 93, 112, 89, 173, 142, 156, 69, 323, - /* 1190 */ 162, 163, 167, 106, 323, 323, 323, 323, 323, 323, - /* 1200 */ 323, 94, 112, 89, 173, 142, 156, 69, 323, 323, - /* 1210 */ 163, 167, 323, 162, 323, 323, 106, 323, 323, 323, - /* 1220 */ 323, 323, 323, 323, 95, 112, 89, 173, 142, 156, - /* 1230 */ 69, 323, 323, 163, 167, 323, 162, 323, 323, 106, - /* 1240 */ 323, 323, 323, 323, 323, 323, 323, 96, 112, 89, - /* 1250 */ 173, 142, 156, 69, 323, 323, 163, 167, 162, 323, - /* 1260 */ 323, 106, 323, 323, 323, 323, 323, 323, 323, 97, - /* 1270 */ 112, 89, 173, 142, 156, 69, 323, 162, 163, 167, - /* 1280 */ 106, 323, 323, 323, 323, 323, 323, 323, 98, 112, - /* 1290 */ 89, 173, 142, 156, 69, 323, 323, 163, 167, 323, - /* 1300 */ 162, 323, 323, 106, 323, 323, 323, 323, 323, 323, - /* 1310 */ 323, 99, 112, 89, 173, 142, 156, 69, 323, 323, - /* 1320 */ 163, 167, 323, 162, 323, 323, 106, 323, 323, 323, - /* 1330 */ 323, 323, 323, 323, 100, 112, 89, 173, 142, 156, - /* 1340 */ 69, 323, 323, 163, 167, 162, 323, 323, 106, 323, - /* 1350 */ 323, 323, 323, 323, 323, 323, 323, 105, 89, 173, - /* 1360 */ 142, 156, 69, 323, 162, 163, 167, 106, 323, 323, - /* 1370 */ 323, 323, 323, 323, 323, 323, 109, 89, 173, 142, - /* 1380 */ 156, 69, 323, 323, 163, 167, 323, 162, 323, 323, - /* 1390 */ 106, 6, 323, 323, 166, 79, 323, 323, 323, 111, - /* 1400 */ 89, 173, 142, 156, 69, 323, 323, 163, 167, 323, - /* 1410 */ 162, 323, 323, 106, 323, 323, 323, 323, 323, 162, - /* 1420 */ 323, 323, 106, 85, 173, 142, 156, 69, 323, 323, - /* 1430 */ 163, 167, 87, 173, 142, 156, 69, 323, 323, 163, - /* 1440 */ 167, 162, 323, 323, 106, 323, 323, 323, 168, 169, - /* 1450 */ 170, 171, 172, 2, 323, 141, 142, 156, 69, 323, - /* 1460 */ 162, 163, 167, 106, 323, 323, 323, 323, 323, 323, - /* 1470 */ 162, 323, 323, 106, 143, 142, 156, 69, 323, 162, - /* 1480 */ 163, 167, 106, 323, 144, 142, 156, 69, 323, 162, - /* 1490 */ 163, 167, 106, 145, 142, 156, 69, 323, 162, 163, - /* 1500 */ 167, 106, 323, 146, 142, 156, 69, 323, 162, 163, - /* 1510 */ 167, 106, 147, 142, 156, 69, 323, 162, 163, 167, - /* 1520 */ 106, 323, 148, 142, 156, 69, 323, 162, 163, 167, - /* 1530 */ 106, 149, 142, 156, 69, 323, 162, 163, 167, 106, - /* 1540 */ 323, 150, 142, 156, 69, 323, 162, 163, 167, 106, - /* 1550 */ 151, 142, 156, 69, 323, 162, 163, 167, 106, 323, - /* 1560 */ 152, 142, 156, 69, 323, 162, 163, 167, 106, 153, - /* 1570 */ 142, 156, 69, 323, 162, 163, 167, 106, 323, 161, - /* 1580 */ 142, 156, 69, 323, 323, 163, 167, 323, 165, 142, - /* 1590 */ 156, 69, 323, 323, 163, 167, + /* 0 */ 322, 72, 101, 200, 170, 173, 194, 80, 115, 114, + /* 10 */ 123, 122, 121, 109, 81, 94, 105, 95, 159, 190, + /* 20 */ 176, 70, 29, 28, 169, 165, 71, 107, 200, 170, + /* 30 */ 173, 194, 80, 115, 114, 123, 122, 121, 109, 81, + /* 40 */ 94, 105, 95, 159, 190, 176, 70, 34, 33, 169, + /* 50 */ 165, 201, 1, 74, 75, 117, 3, 116, 67, 170, + /* 60 */ 173, 194, 80, 115, 114, 123, 122, 121, 109, 81, + /* 70 */ 94, 105, 95, 159, 190, 176, 70, 52, 51, 169, + /* 80 */ 165, 201, 68, 104, 75, 128, 7, 4, 67, 50, + /* 90 */ 49, 48, 66, 54, 53, 62, 61, 196, 152, 26, + /* 100 */ 65, 64, 63, 60, 59, 58, 57, 56, 55, 164, + /* 110 */ 163, 162, 161, 160, 2, 5, 178, 177, 166, 79, + /* 120 */ 23, 155, 157, 69, 30, 170, 147, 194, 80, 115, + /* 130 */ 114, 123, 122, 121, 109, 81, 94, 105, 95, 159, + /* 140 */ 190, 176, 70, 154, 120, 169, 165, 9, 78, 6, + /* 150 */ 26, 119, 152, 31, 152, 168, 175, 174, 62, 61, + /* 160 */ 131, 26, 27, 65, 64, 63, 60, 59, 58, 57, + /* 170 */ 56, 55, 164, 163, 162, 161, 160, 2, 158, 5, + /* 180 */ 169, 165, 166, 79, 24, 116, 157, 170, 173, 194, + /* 190 */ 80, 115, 114, 123, 122, 121, 109, 81, 94, 105, + /* 200 */ 95, 159, 190, 176, 70, 32, 172, 169, 165, 47, + /* 210 */ 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, + /* 220 */ 36, 35, 62, 61, 71, 22, 200, 65, 64, 63, + /* 230 */ 60, 59, 58, 57, 56, 55, 164, 163, 162, 161, + /* 240 */ 160, 2, 151, 110, 146, 170, 173, 194, 80, 115, + /* 250 */ 114, 123, 122, 121, 109, 81, 94, 105, 95, 159, + /* 260 */ 190, 176, 70, 104, 8, 169, 165, 107, 148, 170, + /* 270 */ 173, 194, 80, 115, 114, 123, 122, 121, 109, 81, + /* 280 */ 94, 105, 95, 159, 190, 176, 70, 145, 5, 169, + /* 290 */ 165, 166, 79, 21, 202, 148, 199, 323, 170, 143, + /* 300 */ 194, 80, 115, 114, 123, 122, 121, 109, 81, 94, + /* 310 */ 105, 95, 159, 190, 176, 70, 205, 5, 169, 165, + /* 320 */ 166, 79, 198, 197, 149, 103, 130, 203, 26, 323, + /* 330 */ 323, 62, 61, 323, 323, 323, 65, 64, 63, 60, + /* 340 */ 59, 58, 57, 56, 55, 164, 163, 162, 161, 160, + /* 350 */ 2, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 360 */ 62, 61, 323, 323, 323, 65, 64, 63, 60, 59, + /* 370 */ 58, 57, 56, 55, 164, 163, 162, 161, 160, 2, + /* 380 */ 170, 195, 194, 80, 115, 114, 123, 122, 121, 109, + /* 390 */ 81, 94, 105, 95, 159, 190, 176, 70, 323, 323, + /* 400 */ 169, 165, 323, 323, 323, 323, 323, 170, 193, 194, + /* 410 */ 80, 115, 114, 123, 122, 121, 109, 81, 94, 105, + /* 420 */ 95, 159, 190, 176, 70, 323, 323, 169, 165, 323, + /* 430 */ 323, 323, 323, 323, 323, 323, 170, 127, 194, 80, + /* 440 */ 115, 114, 123, 122, 121, 109, 81, 94, 105, 95, + /* 450 */ 159, 190, 176, 70, 323, 323, 169, 165, 170, 192, + /* 460 */ 194, 80, 115, 114, 123, 122, 121, 109, 81, 94, + /* 470 */ 105, 95, 159, 190, 176, 70, 323, 323, 169, 165, + /* 480 */ 323, 323, 323, 170, 153, 194, 80, 115, 114, 123, + /* 490 */ 122, 121, 109, 81, 94, 105, 95, 159, 190, 176, + /* 500 */ 70, 323, 323, 169, 165, 323, 323, 323, 323, 323, + /* 510 */ 323, 323, 170, 144, 194, 80, 115, 114, 123, 122, + /* 520 */ 121, 109, 81, 94, 105, 95, 159, 190, 176, 70, + /* 530 */ 323, 323, 169, 165, 170, 142, 194, 80, 115, 114, + /* 540 */ 123, 122, 121, 109, 81, 94, 105, 95, 159, 190, + /* 550 */ 176, 70, 323, 323, 169, 165, 323, 323, 323, 170, + /* 560 */ 141, 194, 80, 115, 114, 123, 122, 121, 109, 81, + /* 570 */ 94, 105, 95, 159, 190, 176, 70, 323, 323, 169, + /* 580 */ 165, 323, 323, 323, 323, 323, 323, 323, 170, 140, + /* 590 */ 194, 80, 115, 114, 123, 122, 121, 109, 81, 94, + /* 600 */ 105, 95, 159, 190, 176, 70, 323, 323, 169, 165, + /* 610 */ 170, 139, 194, 80, 115, 114, 123, 122, 121, 109, + /* 620 */ 81, 94, 105, 95, 159, 190, 176, 70, 323, 323, + /* 630 */ 169, 165, 323, 323, 323, 170, 138, 194, 80, 115, + /* 640 */ 114, 123, 122, 121, 109, 81, 94, 105, 95, 159, + /* 650 */ 190, 176, 70, 323, 323, 169, 165, 323, 323, 323, + /* 660 */ 323, 323, 323, 323, 170, 137, 194, 80, 115, 114, + /* 670 */ 123, 122, 121, 109, 81, 94, 105, 95, 159, 190, + /* 680 */ 176, 70, 323, 323, 169, 165, 170, 136, 194, 80, + /* 690 */ 115, 114, 123, 122, 121, 109, 81, 94, 105, 95, + /* 700 */ 159, 190, 176, 70, 323, 323, 169, 165, 323, 323, + /* 710 */ 323, 170, 135, 194, 80, 115, 114, 123, 122, 121, + /* 720 */ 109, 81, 94, 105, 95, 159, 190, 176, 70, 323, + /* 730 */ 323, 169, 165, 323, 323, 323, 323, 323, 323, 323, + /* 740 */ 170, 134, 194, 80, 115, 114, 123, 122, 121, 109, + /* 750 */ 81, 94, 105, 95, 159, 190, 176, 70, 323, 323, + /* 760 */ 169, 165, 170, 133, 194, 80, 115, 114, 123, 122, + /* 770 */ 121, 109, 81, 94, 105, 95, 159, 190, 176, 70, + /* 780 */ 323, 323, 169, 165, 323, 323, 323, 170, 132, 194, + /* 790 */ 80, 115, 114, 123, 122, 121, 109, 81, 94, 105, + /* 800 */ 95, 159, 190, 176, 70, 323, 323, 169, 165, 323, + /* 810 */ 323, 323, 323, 323, 323, 323, 170, 156, 194, 80, + /* 820 */ 115, 114, 123, 122, 121, 109, 81, 94, 105, 95, + /* 830 */ 159, 190, 176, 70, 323, 323, 169, 165, 170, 150, + /* 840 */ 194, 80, 115, 114, 123, 122, 121, 109, 81, 94, + /* 850 */ 105, 95, 159, 190, 176, 70, 323, 323, 169, 165, + /* 860 */ 323, 323, 323, 170, 323, 323, 111, 323, 102, 123, + /* 870 */ 122, 121, 109, 81, 94, 105, 95, 159, 190, 176, + /* 880 */ 70, 323, 323, 169, 165, 323, 323, 323, 323, 323, + /* 890 */ 323, 323, 170, 323, 323, 111, 323, 323, 126, 122, + /* 900 */ 121, 109, 81, 94, 105, 95, 159, 190, 176, 70, + /* 910 */ 323, 323, 169, 165, 170, 323, 323, 111, 323, 323, + /* 920 */ 118, 122, 121, 109, 81, 94, 105, 95, 159, 190, + /* 930 */ 176, 70, 323, 323, 169, 165, 323, 323, 323, 170, + /* 940 */ 323, 323, 111, 323, 323, 323, 125, 121, 109, 81, + /* 950 */ 94, 105, 95, 159, 190, 176, 70, 323, 323, 169, + /* 960 */ 165, 25, 20, 19, 18, 17, 16, 15, 14, 13, + /* 970 */ 12, 11, 10, 323, 170, 323, 323, 111, 323, 323, + /* 980 */ 323, 323, 124, 109, 81, 94, 105, 95, 159, 190, + /* 990 */ 176, 70, 323, 323, 169, 165, 170, 323, 323, 111, + /* 1000 */ 323, 323, 178, 177, 323, 113, 81, 94, 105, 95, + /* 1010 */ 159, 190, 176, 70, 323, 170, 169, 165, 111, 323, + /* 1020 */ 323, 323, 323, 323, 323, 83, 94, 105, 95, 159, + /* 1030 */ 190, 176, 70, 323, 323, 169, 165, 170, 323, 323, + /* 1040 */ 111, 323, 323, 323, 323, 323, 323, 82, 94, 105, + /* 1050 */ 95, 159, 190, 176, 70, 323, 323, 169, 165, 170, + /* 1060 */ 323, 323, 111, 323, 323, 323, 323, 323, 323, 323, + /* 1070 */ 100, 105, 95, 159, 190, 176, 70, 323, 170, 169, + /* 1080 */ 165, 111, 323, 323, 323, 323, 323, 323, 323, 98, + /* 1090 */ 105, 95, 159, 190, 176, 70, 323, 323, 169, 165, + /* 1100 */ 323, 170, 323, 323, 111, 323, 323, 323, 323, 323, + /* 1110 */ 323, 323, 96, 105, 95, 159, 190, 176, 70, 323, + /* 1120 */ 323, 169, 165, 170, 323, 323, 111, 323, 323, 323, + /* 1130 */ 323, 323, 323, 323, 93, 105, 95, 159, 190, 176, + /* 1140 */ 70, 323, 323, 169, 165, 323, 170, 323, 323, 111, + /* 1150 */ 323, 323, 323, 323, 323, 323, 323, 92, 105, 95, + /* 1160 */ 159, 190, 176, 70, 323, 170, 169, 165, 111, 323, + /* 1170 */ 323, 323, 323, 323, 323, 323, 91, 105, 95, 159, + /* 1180 */ 190, 176, 70, 323, 323, 169, 165, 323, 170, 323, + /* 1190 */ 323, 111, 323, 323, 323, 323, 323, 323, 323, 90, + /* 1200 */ 105, 95, 159, 190, 176, 70, 323, 323, 169, 165, + /* 1210 */ 170, 323, 323, 111, 323, 323, 323, 323, 323, 323, + /* 1220 */ 323, 89, 105, 95, 159, 190, 176, 70, 323, 323, + /* 1230 */ 169, 165, 323, 170, 323, 323, 111, 323, 323, 323, + /* 1240 */ 323, 323, 323, 323, 88, 105, 95, 159, 190, 176, + /* 1250 */ 70, 323, 170, 169, 165, 111, 323, 323, 323, 323, + /* 1260 */ 323, 323, 323, 87, 105, 95, 159, 190, 176, 70, + /* 1270 */ 323, 323, 169, 165, 323, 170, 323, 323, 111, 323, + /* 1280 */ 323, 323, 323, 323, 323, 323, 86, 105, 95, 159, + /* 1290 */ 190, 176, 70, 323, 323, 169, 165, 170, 323, 323, + /* 1300 */ 111, 323, 323, 323, 323, 323, 323, 323, 85, 105, + /* 1310 */ 95, 159, 190, 176, 70, 323, 323, 169, 165, 323, + /* 1320 */ 170, 323, 323, 111, 323, 323, 323, 323, 323, 323, + /* 1330 */ 323, 84, 105, 95, 159, 190, 176, 70, 323, 323, + /* 1340 */ 169, 165, 204, 77, 76, 73, 201, 68, 323, 75, + /* 1350 */ 128, 7, 323, 67, 323, 77, 76, 73, 201, 68, + /* 1360 */ 129, 75, 128, 7, 170, 67, 323, 111, 323, 323, + /* 1370 */ 323, 323, 323, 323, 323, 323, 112, 95, 159, 190, + /* 1380 */ 176, 70, 323, 323, 169, 165, 170, 5, 323, 111, + /* 1390 */ 166, 79, 323, 323, 323, 323, 323, 323, 108, 95, + /* 1400 */ 159, 190, 176, 70, 323, 323, 169, 165, 170, 323, + /* 1410 */ 323, 111, 323, 323, 323, 323, 323, 323, 323, 323, + /* 1420 */ 106, 95, 159, 190, 176, 70, 323, 323, 169, 165, + /* 1430 */ 323, 323, 323, 323, 323, 323, 323, 170, 323, 323, + /* 1440 */ 111, 323, 323, 323, 164, 163, 162, 161, 160, 2, + /* 1450 */ 99, 159, 190, 176, 70, 323, 170, 169, 165, 111, + /* 1460 */ 323, 323, 323, 323, 323, 170, 323, 323, 111, 97, + /* 1470 */ 159, 190, 176, 70, 323, 170, 169, 165, 111, 191, + /* 1480 */ 190, 176, 70, 323, 170, 169, 165, 111, 323, 189, + /* 1490 */ 190, 176, 70, 323, 323, 169, 165, 323, 188, 190, + /* 1500 */ 176, 70, 323, 323, 169, 165, 323, 323, 323, 323, + /* 1510 */ 323, 323, 323, 170, 323, 323, 111, 323, 323, 323, + /* 1520 */ 323, 170, 323, 323, 111, 323, 323, 187, 190, 176, + /* 1530 */ 70, 323, 323, 169, 165, 186, 190, 176, 70, 323, + /* 1540 */ 323, 169, 165, 323, 170, 323, 323, 111, 323, 323, + /* 1550 */ 323, 323, 170, 323, 323, 111, 323, 323, 185, 190, + /* 1560 */ 176, 70, 323, 323, 169, 165, 184, 190, 176, 70, + /* 1570 */ 323, 170, 169, 165, 111, 323, 323, 323, 323, 323, + /* 1580 */ 170, 323, 323, 111, 323, 183, 190, 176, 70, 323, + /* 1590 */ 323, 169, 165, 323, 182, 190, 176, 70, 323, 323, + /* 1600 */ 169, 165, 323, 170, 323, 323, 111, 323, 323, 323, + /* 1610 */ 323, 170, 323, 323, 111, 323, 323, 181, 190, 176, + /* 1620 */ 70, 323, 323, 169, 165, 180, 190, 176, 70, 323, + /* 1630 */ 323, 169, 165, 323, 170, 323, 323, 111, 323, 323, + /* 1640 */ 323, 323, 170, 323, 323, 111, 323, 323, 179, 190, + /* 1650 */ 176, 70, 323, 323, 169, 165, 171, 190, 176, 70, + /* 1660 */ 323, 170, 169, 165, 111, 323, 323, 323, 323, 323, + /* 1670 */ 323, 323, 323, 323, 323, 167, 190, 176, 70, 323, + /* 1680 */ 323, 169, 165, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, /* 10 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 20 */ 91, 92, 100, 101, 95, 96, 4, 5, 74, 7, - /* 30 */ 8, 9, 74, 11, 72, 73, 74, 75, 76, 77, - /* 40 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 50 */ 88, 89, 90, 91, 92, 1, 2, 95, 96, 1, - /* 60 */ 2, 3, 4, 5, 6, 7, 8, 9, 74, 11, - /* 70 */ 48, 49, 45, 46, 47, 53, 54, 55, 56, 57, - /* 80 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - /* 90 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - /* 100 */ 85, 86, 87, 88, 89, 90, 91, 92, 12, 12, - /* 110 */ 95, 96, 97, 98, 73, 97, 75, 76, 77, 78, - /* 120 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 130 */ 89, 90, 91, 92, 74, 5, 95, 96, 8, 9, - /* 140 */ 99, 10, 12, 12, 73, 99, 75, 76, 77, 78, - /* 150 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 160 */ 89, 90, 91, 92, 68, 68, 95, 96, 4, 5, - /* 170 */ 7, 7, 8, 9, 72, 11, 74, 74, 48, 49, - /* 180 */ 75, 93, 94, 53, 54, 55, 56, 57, 58, 59, - /* 190 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 5, - /* 200 */ 95, 96, 8, 9, 3, 73, 12, 75, 76, 77, - /* 210 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 220 */ 88, 89, 90, 91, 92, 74, 25, 95, 96, 32, - /* 230 */ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - /* 240 */ 43, 44, 48, 49, 30, 31, 5, 53, 54, 55, - /* 250 */ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - /* 260 */ 66, 67, 68, 5, 48, 49, 8, 9, 26, 73, - /* 270 */ 12, 75, 76, 77, 78, 79, 80, 81, 82, 83, - /* 280 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 54, - /* 290 */ 55, 95, 96, 0, 1, 2, 3, 4, 5, 27, - /* 300 */ 7, 8, 9, 6, 11, 28, 48, 49, 67, 12, - /* 310 */ 69, 53, 54, 55, 56, 57, 58, 59, 60, 61, - /* 320 */ 62, 63, 64, 65, 66, 67, 75, 76, 77, 78, - /* 330 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 340 */ 89, 90, 91, 92, 6, 5, 95, 96, 8, 9, - /* 350 */ 12, 29, 8, 102, 75, 76, 77, 78, 79, 80, - /* 360 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 370 */ 91, 92, 0, 26, 95, 96, 50, 51, 52, 10, - /* 380 */ 103, 12, 103, 103, 12, 103, 103, 103, 48, 49, - /* 390 */ 103, 103, 103, 53, 54, 55, 56, 57, 58, 59, - /* 400 */ 60, 61, 62, 63, 64, 65, 66, 67, 75, 76, - /* 410 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - /* 420 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, - /* 430 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - /* 440 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 450 */ 95, 96, 103, 103, 103, 103, 103, 103, 103, 103, - /* 460 */ 103, 103, 103, 103, 75, 76, 77, 78, 79, 80, - /* 470 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 480 */ 91, 92, 8, 103, 95, 96, 75, 76, 77, 78, - /* 490 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 500 */ 89, 90, 91, 92, 103, 103, 95, 96, 75, 76, - /* 510 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - /* 520 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, - /* 530 */ 103, 103, 103, 103, 103, 103, 62, 103, 64, 103, - /* 540 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - /* 550 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 560 */ 95, 96, 75, 76, 77, 78, 79, 80, 81, 82, - /* 570 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 580 */ 103, 103, 95, 96, 75, 76, 77, 78, 79, 80, - /* 590 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 600 */ 91, 92, 103, 103, 95, 96, 103, 103, 103, 103, - /* 610 */ 103, 103, 103, 103, 103, 103, 75, 76, 77, 78, - /* 620 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 630 */ 89, 90, 91, 92, 103, 103, 95, 96, 75, 76, - /* 640 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - /* 650 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, - /* 660 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - /* 670 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 680 */ 95, 96, 103, 103, 103, 103, 103, 103, 103, 103, - /* 690 */ 103, 103, 75, 76, 77, 78, 79, 80, 81, 82, - /* 700 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 710 */ 103, 103, 95, 96, 75, 76, 77, 78, 79, 80, - /* 720 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 730 */ 91, 92, 103, 103, 95, 96, 75, 76, 77, 78, - /* 740 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 750 */ 89, 90, 91, 92, 103, 103, 95, 96, 103, 103, - /* 760 */ 103, 103, 103, 103, 103, 103, 103, 103, 75, 76, - /* 770 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - /* 780 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, - /* 790 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - /* 800 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 810 */ 95, 96, 75, 76, 77, 78, 79, 80, 81, 82, - /* 820 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 830 */ 103, 103, 95, 96, 103, 103, 103, 103, 103, 103, - /* 840 */ 103, 103, 103, 103, 75, 76, 77, 78, 79, 80, - /* 850 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 860 */ 91, 92, 103, 103, 95, 96, 75, 103, 103, 78, - /* 870 */ 103, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 880 */ 89, 90, 91, 92, 103, 103, 95, 96, 75, 103, - /* 890 */ 103, 78, 103, 103, 81, 82, 83, 84, 85, 86, - /* 900 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, - /* 910 */ 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - /* 920 */ 75, 103, 103, 78, 103, 103, 81, 82, 83, 84, - /* 930 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 940 */ 95, 96, 75, 103, 103, 78, 103, 103, 103, 82, - /* 950 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 960 */ 103, 103, 95, 96, 75, 103, 103, 78, 103, 103, - /* 970 */ 103, 103, 83, 84, 85, 86, 87, 88, 89, 90, - /* 980 */ 91, 92, 103, 103, 95, 96, 13, 14, 15, 16, - /* 990 */ 17, 18, 19, 20, 21, 22, 23, 24, 103, 75, - /* 1000 */ 103, 103, 78, 103, 103, 103, 103, 103, 84, 85, - /* 1010 */ 86, 87, 88, 89, 90, 91, 92, 103, 103, 95, - /* 1020 */ 96, 75, 103, 103, 78, 103, 103, 54, 55, 103, - /* 1030 */ 103, 85, 86, 87, 88, 89, 90, 91, 92, 103, - /* 1040 */ 75, 95, 96, 78, 103, 103, 103, 103, 103, 103, - /* 1050 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 1060 */ 95, 96, 75, 103, 103, 78, 103, 103, 103, 103, - /* 1070 */ 103, 103, 103, 86, 87, 88, 89, 90, 91, 92, - /* 1080 */ 103, 103, 95, 96, 75, 103, 103, 78, 103, 103, - /* 1090 */ 103, 103, 103, 103, 103, 86, 87, 88, 89, 90, - /* 1100 */ 91, 92, 103, 75, 95, 96, 78, 103, 103, 103, - /* 1110 */ 103, 103, 103, 103, 86, 87, 88, 89, 90, 91, - /* 1120 */ 92, 103, 103, 95, 96, 103, 75, 103, 103, 78, - /* 1130 */ 103, 103, 103, 103, 103, 103, 103, 86, 87, 88, - /* 1140 */ 89, 90, 91, 92, 103, 103, 95, 96, 103, 75, - /* 1150 */ 103, 103, 78, 103, 103, 103, 103, 103, 103, 103, - /* 1160 */ 86, 87, 88, 89, 90, 91, 92, 103, 103, 95, - /* 1170 */ 96, 75, 103, 103, 78, 103, 103, 103, 103, 103, - /* 1180 */ 103, 103, 86, 87, 88, 89, 90, 91, 92, 103, - /* 1190 */ 75, 95, 96, 78, 103, 103, 103, 103, 103, 103, - /* 1200 */ 103, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 1210 */ 95, 96, 103, 75, 103, 103, 78, 103, 103, 103, - /* 1220 */ 103, 103, 103, 103, 86, 87, 88, 89, 90, 91, - /* 1230 */ 92, 103, 103, 95, 96, 103, 75, 103, 103, 78, - /* 1240 */ 103, 103, 103, 103, 103, 103, 103, 86, 87, 88, - /* 1250 */ 89, 90, 91, 92, 103, 103, 95, 96, 75, 103, - /* 1260 */ 103, 78, 103, 103, 103, 103, 103, 103, 103, 86, - /* 1270 */ 87, 88, 89, 90, 91, 92, 103, 75, 95, 96, - /* 1280 */ 78, 103, 103, 103, 103, 103, 103, 103, 86, 87, - /* 1290 */ 88, 89, 90, 91, 92, 103, 103, 95, 96, 103, - /* 1300 */ 75, 103, 103, 78, 103, 103, 103, 103, 103, 103, - /* 1310 */ 103, 86, 87, 88, 89, 90, 91, 92, 103, 103, - /* 1320 */ 95, 96, 103, 75, 103, 103, 78, 103, 103, 103, - /* 1330 */ 103, 103, 103, 103, 86, 87, 88, 89, 90, 91, - /* 1340 */ 92, 103, 103, 95, 96, 75, 103, 103, 78, 103, - /* 1350 */ 103, 103, 103, 103, 103, 103, 103, 87, 88, 89, - /* 1360 */ 90, 91, 92, 103, 75, 95, 96, 78, 103, 103, + /* 20 */ 91, 92, 1, 2, 95, 96, 72, 73, 74, 75, + /* 30 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + /* 40 */ 86, 87, 88, 89, 90, 91, 92, 30, 31, 95, + /* 50 */ 96, 4, 5, 7, 7, 8, 9, 73, 11, 75, + /* 60 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + /* 70 */ 86, 87, 88, 89, 90, 91, 92, 48, 49, 95, + /* 80 */ 96, 4, 5, 99, 7, 8, 9, 5, 11, 45, + /* 90 */ 46, 47, 50, 51, 52, 48, 49, 10, 8, 12, + /* 100 */ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + /* 110 */ 63, 64, 65, 66, 67, 5, 54, 55, 8, 9, + /* 120 */ 26, 10, 12, 12, 27, 75, 76, 77, 78, 79, + /* 130 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + /* 140 */ 90, 91, 92, 100, 101, 95, 96, 97, 98, 67, + /* 150 */ 12, 69, 62, 28, 64, 6, 93, 94, 48, 49, + /* 160 */ 75, 12, 3, 53, 54, 55, 56, 57, 58, 59, + /* 170 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 5, + /* 180 */ 95, 96, 8, 9, 25, 73, 12, 75, 76, 77, + /* 190 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + /* 200 */ 88, 89, 90, 91, 92, 29, 68, 95, 96, 32, + /* 210 */ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + /* 220 */ 43, 44, 48, 49, 72, 26, 74, 53, 54, 55, + /* 230 */ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + /* 240 */ 66, 67, 68, 73, 8, 75, 76, 77, 78, 79, + /* 250 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + /* 260 */ 90, 91, 92, 99, 97, 95, 96, 73, 12, 75, + /* 270 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + /* 280 */ 86, 87, 88, 89, 90, 91, 92, 6, 5, 95, + /* 290 */ 96, 8, 9, 12, 74, 12, 74, 103, 75, 76, + /* 300 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 310 */ 87, 88, 89, 90, 91, 92, 0, 5, 95, 96, + /* 320 */ 8, 9, 74, 74, 68, 102, 74, 74, 12, 103, + /* 330 */ 103, 48, 49, 103, 103, 103, 53, 54, 55, 56, + /* 340 */ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + /* 350 */ 67, 103, 103, 103, 103, 103, 103, 103, 103, 103, + /* 360 */ 48, 49, 103, 103, 103, 53, 54, 55, 56, 57, + /* 370 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + /* 380 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + /* 390 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, + /* 400 */ 95, 96, 103, 103, 103, 103, 103, 75, 76, 77, + /* 410 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + /* 420 */ 88, 89, 90, 91, 92, 103, 103, 95, 96, 103, + /* 430 */ 103, 103, 103, 103, 103, 103, 75, 76, 77, 78, + /* 440 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + /* 450 */ 89, 90, 91, 92, 103, 103, 95, 96, 75, 76, + /* 460 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 470 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, + /* 480 */ 103, 103, 103, 75, 76, 77, 78, 79, 80, 81, + /* 490 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + /* 500 */ 92, 103, 103, 95, 96, 103, 103, 103, 103, 103, + /* 510 */ 103, 103, 75, 76, 77, 78, 79, 80, 81, 82, + /* 520 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 530 */ 103, 103, 95, 96, 75, 76, 77, 78, 79, 80, + /* 540 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 550 */ 91, 92, 103, 103, 95, 96, 103, 103, 103, 75, + /* 560 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + /* 570 */ 86, 87, 88, 89, 90, 91, 92, 103, 103, 95, + /* 580 */ 96, 103, 103, 103, 103, 103, 103, 103, 75, 76, + /* 590 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 600 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, + /* 610 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + /* 620 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, + /* 630 */ 95, 96, 103, 103, 103, 75, 76, 77, 78, 79, + /* 640 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + /* 650 */ 90, 91, 92, 103, 103, 95, 96, 103, 103, 103, + /* 660 */ 103, 103, 103, 103, 75, 76, 77, 78, 79, 80, + /* 670 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 680 */ 91, 92, 103, 103, 95, 96, 75, 76, 77, 78, + /* 690 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + /* 700 */ 89, 90, 91, 92, 103, 103, 95, 96, 103, 103, + /* 710 */ 103, 75, 76, 77, 78, 79, 80, 81, 82, 83, + /* 720 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 103, + /* 730 */ 103, 95, 96, 103, 103, 103, 103, 103, 103, 103, + /* 740 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + /* 750 */ 85, 86, 87, 88, 89, 90, 91, 92, 103, 103, + /* 760 */ 95, 96, 75, 76, 77, 78, 79, 80, 81, 82, + /* 770 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 780 */ 103, 103, 95, 96, 103, 103, 103, 75, 76, 77, + /* 790 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + /* 800 */ 88, 89, 90, 91, 92, 103, 103, 95, 96, 103, + /* 810 */ 103, 103, 103, 103, 103, 103, 75, 76, 77, 78, + /* 820 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + /* 830 */ 89, 90, 91, 92, 103, 103, 95, 96, 75, 76, + /* 840 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + /* 850 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, + /* 860 */ 103, 103, 103, 75, 103, 103, 78, 103, 80, 81, + /* 870 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + /* 880 */ 92, 103, 103, 95, 96, 103, 103, 103, 103, 103, + /* 890 */ 103, 103, 75, 103, 103, 78, 103, 103, 81, 82, + /* 900 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 910 */ 103, 103, 95, 96, 75, 103, 103, 78, 103, 103, + /* 920 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 930 */ 91, 92, 103, 103, 95, 96, 103, 103, 103, 75, + /* 940 */ 103, 103, 78, 103, 103, 103, 82, 83, 84, 85, + /* 950 */ 86, 87, 88, 89, 90, 91, 92, 103, 103, 95, + /* 960 */ 96, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 970 */ 22, 23, 24, 103, 75, 103, 103, 78, 103, 103, + /* 980 */ 103, 103, 83, 84, 85, 86, 87, 88, 89, 90, + /* 990 */ 91, 92, 103, 103, 95, 96, 75, 103, 103, 78, + /* 1000 */ 103, 103, 54, 55, 103, 84, 85, 86, 87, 88, + /* 1010 */ 89, 90, 91, 92, 103, 75, 95, 96, 78, 103, + /* 1020 */ 103, 103, 103, 103, 103, 85, 86, 87, 88, 89, + /* 1030 */ 90, 91, 92, 103, 103, 95, 96, 75, 103, 103, + /* 1040 */ 78, 103, 103, 103, 103, 103, 103, 85, 86, 87, + /* 1050 */ 88, 89, 90, 91, 92, 103, 103, 95, 96, 75, + /* 1060 */ 103, 103, 78, 103, 103, 103, 103, 103, 103, 103, + /* 1070 */ 86, 87, 88, 89, 90, 91, 92, 103, 75, 95, + /* 1080 */ 96, 78, 103, 103, 103, 103, 103, 103, 103, 86, + /* 1090 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, + /* 1100 */ 103, 75, 103, 103, 78, 103, 103, 103, 103, 103, + /* 1110 */ 103, 103, 86, 87, 88, 89, 90, 91, 92, 103, + /* 1120 */ 103, 95, 96, 75, 103, 103, 78, 103, 103, 103, + /* 1130 */ 103, 103, 103, 103, 86, 87, 88, 89, 90, 91, + /* 1140 */ 92, 103, 103, 95, 96, 103, 75, 103, 103, 78, + /* 1150 */ 103, 103, 103, 103, 103, 103, 103, 86, 87, 88, + /* 1160 */ 89, 90, 91, 92, 103, 75, 95, 96, 78, 103, + /* 1170 */ 103, 103, 103, 103, 103, 103, 86, 87, 88, 89, + /* 1180 */ 90, 91, 92, 103, 103, 95, 96, 103, 75, 103, + /* 1190 */ 103, 78, 103, 103, 103, 103, 103, 103, 103, 86, + /* 1200 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, + /* 1210 */ 75, 103, 103, 78, 103, 103, 103, 103, 103, 103, + /* 1220 */ 103, 86, 87, 88, 89, 90, 91, 92, 103, 103, + /* 1230 */ 95, 96, 103, 75, 103, 103, 78, 103, 103, 103, + /* 1240 */ 103, 103, 103, 103, 86, 87, 88, 89, 90, 91, + /* 1250 */ 92, 103, 75, 95, 96, 78, 103, 103, 103, 103, + /* 1260 */ 103, 103, 103, 86, 87, 88, 89, 90, 91, 92, + /* 1270 */ 103, 103, 95, 96, 103, 75, 103, 103, 78, 103, + /* 1280 */ 103, 103, 103, 103, 103, 103, 86, 87, 88, 89, + /* 1290 */ 90, 91, 92, 103, 103, 95, 96, 75, 103, 103, + /* 1300 */ 78, 103, 103, 103, 103, 103, 103, 103, 86, 87, + /* 1310 */ 88, 89, 90, 91, 92, 103, 103, 95, 96, 103, + /* 1320 */ 75, 103, 103, 78, 103, 103, 103, 103, 103, 103, + /* 1330 */ 103, 86, 87, 88, 89, 90, 91, 92, 103, 103, + /* 1340 */ 95, 96, 0, 1, 2, 3, 4, 5, 103, 7, + /* 1350 */ 8, 9, 103, 11, 103, 1, 2, 3, 4, 5, + /* 1360 */ 6, 7, 8, 9, 75, 11, 103, 78, 103, 103, /* 1370 */ 103, 103, 103, 103, 103, 103, 87, 88, 89, 90, - /* 1380 */ 91, 92, 103, 103, 95, 96, 103, 75, 103, 103, - /* 1390 */ 78, 5, 103, 103, 8, 9, 103, 103, 103, 87, - /* 1400 */ 88, 89, 90, 91, 92, 103, 103, 95, 96, 103, - /* 1410 */ 75, 103, 103, 78, 103, 103, 103, 103, 103, 75, - /* 1420 */ 103, 103, 78, 88, 89, 90, 91, 92, 103, 103, - /* 1430 */ 95, 96, 88, 89, 90, 91, 92, 103, 103, 95, - /* 1440 */ 96, 75, 103, 103, 78, 103, 103, 103, 62, 63, - /* 1450 */ 64, 65, 66, 67, 103, 89, 90, 91, 92, 103, - /* 1460 */ 75, 95, 96, 78, 103, 103, 103, 103, 103, 103, - /* 1470 */ 75, 103, 103, 78, 89, 90, 91, 92, 103, 75, - /* 1480 */ 95, 96, 78, 103, 89, 90, 91, 92, 103, 75, - /* 1490 */ 95, 96, 78, 89, 90, 91, 92, 103, 75, 95, - /* 1500 */ 96, 78, 103, 89, 90, 91, 92, 103, 75, 95, - /* 1510 */ 96, 78, 89, 90, 91, 92, 103, 75, 95, 96, - /* 1520 */ 78, 103, 89, 90, 91, 92, 103, 75, 95, 96, - /* 1530 */ 78, 89, 90, 91, 92, 103, 75, 95, 96, 78, - /* 1540 */ 103, 89, 90, 91, 92, 103, 75, 95, 96, 78, - /* 1550 */ 89, 90, 91, 92, 103, 75, 95, 96, 78, 103, - /* 1560 */ 89, 90, 91, 92, 103, 75, 95, 96, 78, 89, - /* 1570 */ 90, 91, 92, 103, 75, 95, 96, 78, 103, 89, - /* 1580 */ 90, 91, 92, 103, 103, 95, 96, 103, 89, 90, - /* 1590 */ 91, 92, 103, 103, 95, 96, + /* 1380 */ 91, 92, 103, 103, 95, 96, 75, 5, 103, 78, + /* 1390 */ 8, 9, 103, 103, 103, 103, 103, 103, 87, 88, + /* 1400 */ 89, 90, 91, 92, 103, 103, 95, 96, 75, 103, + /* 1410 */ 103, 78, 103, 103, 103, 103, 103, 103, 103, 103, + /* 1420 */ 87, 88, 89, 90, 91, 92, 103, 103, 95, 96, + /* 1430 */ 103, 103, 103, 103, 103, 103, 103, 75, 103, 103, + /* 1440 */ 78, 103, 103, 103, 62, 63, 64, 65, 66, 67, + /* 1450 */ 88, 89, 90, 91, 92, 103, 75, 95, 96, 78, + /* 1460 */ 103, 103, 103, 103, 103, 75, 103, 103, 78, 88, + /* 1470 */ 89, 90, 91, 92, 103, 75, 95, 96, 78, 89, + /* 1480 */ 90, 91, 92, 103, 75, 95, 96, 78, 103, 89, + /* 1490 */ 90, 91, 92, 103, 103, 95, 96, 103, 89, 90, + /* 1500 */ 91, 92, 103, 103, 95, 96, 103, 103, 103, 103, + /* 1510 */ 103, 103, 103, 75, 103, 103, 78, 103, 103, 103, + /* 1520 */ 103, 75, 103, 103, 78, 103, 103, 89, 90, 91, + /* 1530 */ 92, 103, 103, 95, 96, 89, 90, 91, 92, 103, + /* 1540 */ 103, 95, 96, 103, 75, 103, 103, 78, 103, 103, + /* 1550 */ 103, 103, 75, 103, 103, 78, 103, 103, 89, 90, + /* 1560 */ 91, 92, 103, 103, 95, 96, 89, 90, 91, 92, + /* 1570 */ 103, 75, 95, 96, 78, 103, 103, 103, 103, 103, + /* 1580 */ 75, 103, 103, 78, 103, 89, 90, 91, 92, 103, + /* 1590 */ 103, 95, 96, 103, 89, 90, 91, 92, 103, 103, + /* 1600 */ 95, 96, 103, 75, 103, 103, 78, 103, 103, 103, + /* 1610 */ 103, 75, 103, 103, 78, 103, 103, 89, 90, 91, + /* 1620 */ 92, 103, 103, 95, 96, 89, 90, 91, 92, 103, + /* 1630 */ 103, 95, 96, 103, 75, 103, 103, 78, 103, 103, + /* 1640 */ 103, 103, 75, 103, 103, 78, 103, 103, 89, 90, + /* 1650 */ 91, 92, 103, 103, 95, 96, 89, 90, 91, 92, + /* 1660 */ 103, 75, 95, 96, 78, 103, 103, 103, 103, 103, + /* 1670 */ 103, 103, 103, 103, 103, 89, 90, 91, 92, 103, + /* 1680 */ 103, 95, 96, }; #define YY_SHIFT_USE_DFLT (-1) -#define YY_SHIFT_MAX 128 +#define YY_SHIFT_COUNT (128) +#define YY_SHIFT_MIN (0) +#define YY_SHIFT_MAX (1382) static const short yy_shift_ofst[] = { - /* 0 */ 22, 22, 258, 340, 340, 340, 340, 340, 130, 194, - /* 10 */ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - /* 20 */ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - /* 30 */ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - /* 40 */ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - /* 50 */ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - /* 60 */ 340, 340, 340, 340, 340, 340, 340, 1386, 164, 241, - /* 70 */ 474, 293, 58, 164, 164, 164, 164, 164, 96, -1, - /* 80 */ 973, 197, 197, 197, 27, 326, 27, 326, 27, 326, - /* 90 */ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - /* 100 */ 27, 131, 201, 54, 214, 216, 235, 97, 214, 216, - /* 110 */ 297, 216, 216, 369, 338, 54, 372, 163, 242, 272, - /* 120 */ 277, 322, 272, 277, 322, 347, 344, 272, 163, + /* 0 */ 47, 47, 283, 312, 312, 312, 312, 312, 174, 110, + /* 10 */ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + /* 20 */ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + /* 30 */ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + /* 40 */ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + /* 50 */ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + /* 60 */ 312, 312, 312, 312, 312, 312, 312, 1382, 77, 90, + /* 70 */ 82, 1354, 1342, 77, 77, 77, 77, 77, 256, -1, + /* 80 */ 948, 177, 177, 177, 44, 44, 44, 44, 44, 44, + /* 90 */ 44, 44, 44, 44, 44, 42, 44, 42, 44, 42, + /* 100 */ 44, 316, 21, 281, 111, 29, 29, 149, 29, 17, + /* 110 */ 138, 62, 29, 17, 21, 159, 87, 46, 97, 236, + /* 120 */ 199, 176, 125, 97, 176, 125, 97, 94, 46, }; -#define YY_REDUCE_USE_DFLT (-79) -#define YY_REDUCE_MAX 79 +#define YY_REDUCE_USE_DFLT (-72) +#define YY_REDUCE_COUNT (79) +#define YY_REDUCE_MIN (-71) +#define YY_REDUCE_MAX (1586) static const short yy_reduce_ofst[] = { - /* 0 */ -71, -38, 15, 41, 71, 132, 196, 251, 279, 333, - /* 10 */ 355, 389, 411, 433, 465, 487, 509, 541, 563, 585, - /* 20 */ 617, 639, 661, 693, 715, 737, 769, 791, 813, 845, - /* 30 */ 867, 889, 924, 946, 965, 987, 1009, 1028, 1051, 1074, - /* 40 */ 1096, 1115, 1138, 1161, 1183, 1202, 1225, 1248, 1270, 1289, - /* 50 */ 1312, 1335, 1344, 1366, 1385, 1395, 1404, 1414, 1423, 1433, - /* 60 */ 1442, 1452, 1461, 1471, 1480, 1490, 1499, 105, 102, 88, - /* 70 */ -78, -46, -46, -42, -6, 60, 103, 151, 18, 46, + /* 0 */ -71, -46, 50, -16, 223, 194, 170, 112, 763, 741, + /* 10 */ 712, 687, 665, 636, 611, 589, 560, 535, 513, 484, + /* 20 */ 459, 437, 408, 383, 361, 332, 305, 788, 839, 817, + /* 30 */ 864, 899, 921, 962, 940, 1245, 1222, 1200, 1177, 1158, + /* 40 */ 1135, 1113, 1090, 1071, 1048, 1026, 1003, 984, 1333, 1311, + /* 50 */ 1289, 1381, 1362, 1586, 1567, 1559, 1536, 1528, 1505, 1496, + /* 60 */ 1477, 1469, 1446, 1438, 1409, 1400, 1390, 85, 152, 43, + /* 70 */ 63, 253, 253, 252, 249, 248, 222, 220, 167, 164, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 321, 321, 321, 311, 321, 321, 321, 318, 321, 321, + /* 0 */ 321, 321, 321, 311, 318, 321, 321, 321, 321, 321, /* 10 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, /* 20 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, /* 30 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, /* 40 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, /* 50 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - /* 60 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 289, - /* 70 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 311, - /* 80 */ 285, 246, 247, 245, 249, 267, 250, 268, 251, 266, - /* 90 */ 248, 252, 253, 254, 255, 256, 257, 258, 259, 260, - /* 100 */ 261, 321, 232, 234, 244, 263, 285, 321, 243, 264, - /* 110 */ 321, 265, 262, 321, 321, 235, 321, 321, 321, 237, - /* 120 */ 240, 242, 236, 239, 241, 321, 321, 238, 295, 207, - /* 130 */ 208, 211, 206, 209, 213, 214, 215, 218, 219, 220, - /* 140 */ 233, 270, 273, 274, 275, 276, 277, 278, 279, 280, - /* 150 */ 281, 282, 283, 284, 286, 287, 288, 290, 292, 217, - /* 160 */ 315, 271, 291, 293, 294, 272, 295, 296, 297, 298, - /* 170 */ 299, 300, 301, 269, 302, 306, 308, 310, 312, 313, - /* 180 */ 314, 303, 309, 304, 305, 307, 316, 317, 320, 319, - /* 190 */ 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - /* 200 */ 231, 216, 210, 212, + /* 60 */ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + /* 70 */ 289, 321, 321, 321, 321, 321, 321, 321, 321, 311, + /* 80 */ 285, 245, 247, 246, 261, 260, 259, 258, 257, 256, + /* 90 */ 255, 254, 253, 252, 248, 266, 251, 268, 250, 267, + /* 100 */ 249, 321, 235, 321, 321, 262, 265, 321, 264, 243, + /* 110 */ 321, 285, 263, 244, 234, 232, 321, 295, 238, 321, + /* 120 */ 321, 241, 239, 236, 242, 240, 237, 321, 321, 212, + /* 130 */ 210, 216, 231, 230, 229, 228, 227, 226, 225, 224, + /* 140 */ 223, 222, 221, 319, 320, 317, 316, 307, 305, 304, + /* 150 */ 309, 303, 314, 313, 312, 310, 308, 306, 302, 269, + /* 160 */ 301, 300, 299, 298, 297, 296, 295, 272, 294, 293, + /* 170 */ 291, 271, 315, 217, 292, 290, 288, 287, 286, 284, + /* 180 */ 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, + /* 190 */ 273, 270, 233, 220, 219, 218, 215, 214, 213, 209, + /* 200 */ 206, 211, 208, 207, }; -#define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** -** appears in the grammer, then ID becomes a fallback token for X, Y, +** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. @@ -534,11 +570,11 @@ static const YYCODETYPE yyFallback[] = { ** It is sometimes called the "minor" token. */ struct yyStackEntry { - int stateno; /* The state-number */ - int major; /* The major token value. This is the code - ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ + YYACTIONTYPE stateno; /* The state-number */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; @@ -546,6 +582,9 @@ typedef struct yyStackEntry yyStackEntry; ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ +#ifdef YYTRACKMAXSTACKDEPTH + int yyidxMax; /* Maximum value of yyidx */ +#endif int yyerrcnt; /* Shifts left before out of the error */ grn_expr_parserARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 @@ -593,7 +632,7 @@ void grn_expr_parserTrace(FILE *TraceFILE, char *zTracePrompt){ /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { - "$", "LOGICAL_AND", "LOGICAL_BUT", "LOGICAL_OR", + "$", "LOGICAL_AND", "LOGICAL_AND_NOT", "LOGICAL_OR", "QSTRING", "PARENL", "PARENR", "RELATIVE_OP", "IDENTIFIER", "BRACEL", "BRACER", "EVAL", "COMMA", "ASSIGN", "STAR_ASSIGN", "SLASH_ASSIGN", @@ -631,7 +670,7 @@ static const char *const yyRuleName[] = { /* 2 */ "query ::= query_element", /* 3 */ "query ::= query query_element", /* 4 */ "query ::= query LOGICAL_AND query_element", - /* 5 */ "query ::= query LOGICAL_BUT query_element", + /* 5 */ "query ::= query LOGICAL_AND_NOT query_element", /* 6 */ "query ::= query LOGICAL_OR query_element", /* 7 */ "query_element ::= QSTRING", /* 8 */ "query_element ::= PARENL query PARENR", @@ -660,7 +699,7 @@ static const char *const yyRuleName[] = { /* 31 */ "logical_or_expression ::= logical_or_expression LOGICAL_OR logical_and_expression", /* 32 */ "logical_and_expression ::= bitwise_or_expression", /* 33 */ "logical_and_expression ::= logical_and_expression LOGICAL_AND bitwise_or_expression", - /* 34 */ "logical_and_expression ::= logical_and_expression LOGICAL_BUT bitwise_or_expression", + /* 34 */ "logical_and_expression ::= logical_and_expression LOGICAL_AND_NOT bitwise_or_expression", /* 35 */ "bitwise_or_expression ::= bitwise_xor_expression", /* 36 */ "bitwise_or_expression ::= bitwise_or_expression BITWISE_OR bitwise_xor_expression", /* 37 */ "bitwise_xor_expression ::= bitwise_and_expression", @@ -787,7 +826,12 @@ void *grn_expr_parserAlloc(void *(*mallocProc)(size_t)){ pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); if( pParser ){ pParser->yyidx = -1; +#ifdef YYTRACKMAXSTACKDEPTH + pParser->yyidxMax = 0; +#endif #if YYSTACKDEPTH<=0 + pParser->yystack = NULL; + pParser->yystksz = 0; yyGrowStack(pParser); #endif } @@ -799,7 +843,12 @@ void *grn_expr_parserAlloc(void *(*mallocProc)(size_t)){ ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ -static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ +static void yy_destructor( + yyParser *yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE *yypminor /* The object to be destroyed */ +){ + grn_expr_parserARG_FETCH; switch( yymajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen @@ -836,7 +885,7 @@ static int yy_pop_parser_stack(yyParser *pParser){ } #endif yymajor = yytos->major; - yy_destructor( yymajor, &yytos->minor); + yy_destructor(pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } @@ -867,6 +916,16 @@ void grn_expr_parserFree( } /* +** Return the peak depth of the stack for a parser. +*/ +#ifdef YYTRACKMAXSTACKDEPTH +int grn_expr_parserStackPeak(void *p){ + yyParser *pParser = (yyParser*)p; + return pParser->yyidxMax; +} +#endif + +/* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** @@ -881,15 +940,16 @@ static int yy_find_shift_action( int i; int stateno = pParser->yystack[pParser->yyidx].stateno; - if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ + if( stateno>YY_SHIFT_COUNT + || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ return yy_default[stateno]; } assert( iLookAhead!=YYNOCODE ); i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ + if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ if( iLookAhead>0 ){ #ifdef YYFALLBACK - int iFallback; /* Fallback token */ + YYCODETYPE iFallback; /* Fallback token */ if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) && (iFallback = yyFallback[iLookAhead])!=0 ){ #ifndef NDEBUG @@ -904,7 +964,15 @@ static int yy_find_shift_action( #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; - if( j>=0 && j<YY_SZ_ACTTAB && yy_lookahead[j]==YYWILDCARD ){ + if( +#if YY_SHIFT_MIN+YYWILDCARD<0 + j>=0 && +#endif +#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT + j<YY_ACTTAB_COUNT && +#endif + yy_lookahead[j]==YYWILDCARD + ){ #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", @@ -936,22 +1004,22 @@ static int yy_find_reduce_action( ){ int i; #ifdef YYERRORSYMBOL - if( stateno>YY_REDUCE_MAX ){ + if( stateno>YY_REDUCE_COUNT ){ return yy_default[stateno]; } #else - assert( stateno<=YY_REDUCE_MAX ); + assert( stateno<=YY_REDUCE_COUNT ); #endif i = yy_reduce_ofst[stateno]; assert( i!=YY_REDUCE_USE_DFLT ); assert( iLookAhead!=YYNOCODE ); i += iLookAhead; #ifdef YYERRORSYMBOL - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ + if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ return yy_default[stateno]; } #else - assert( i>=0 && i<YY_SZ_ACTTAB ); + assert( i>=0 && i<YY_ACTTAB_COUNT ); assert( yy_lookahead[i]==iLookAhead ); #endif return yy_action[i]; @@ -981,10 +1049,15 @@ static void yy_shift( yyParser *yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ + YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ ){ yyStackEntry *yytos; yypParser->yyidx++; +#ifdef YYTRACKMAXSTACKDEPTH + if( yypParser->yyidx>yypParser->yyidxMax ){ + yypParser->yyidxMax = yypParser->yyidx; + } +#endif #if YYSTACKDEPTH>0 if( yypParser->yyidx>=YYSTACKDEPTH ){ yyStackOverflow(yypParser, yypMinor); @@ -1000,8 +1073,8 @@ static void yy_shift( } #endif yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = yyNewState; - yytos->major = yyMajor; + yytos->stateno = (YYACTIONTYPE)yyNewState; + yytos->major = (YYCODETYPE)yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if( yyTraceFILE && yypParser->yyidx>0 ){ @@ -1193,89 +1266,36 @@ static void yy_reduce( ** #line <lineno> <thisfile> ** break; */ - case 0: /* input ::= query */ - case 1: /* input ::= expression */ - case 2: /* query ::= query_element */ - case 7: /* query_element ::= QSTRING */ - case 8: /* query_element ::= PARENL query PARENR */ - case 13: /* expression ::= assignment_expression */ - case 15: /* assignment_expression ::= conditional_expression */ - case 28: /* conditional_expression ::= logical_or_expression */ - case 30: /* logical_or_expression ::= logical_and_expression */ - case 32: /* logical_and_expression ::= bitwise_or_expression */ - case 35: /* bitwise_or_expression ::= bitwise_xor_expression */ - case 37: /* bitwise_xor_expression ::= bitwise_and_expression */ - case 39: /* bitwise_and_expression ::= equality_expression */ - case 41: /* equality_expression ::= relational_expression */ - case 44: /* relational_expression ::= shift_expression */ - case 58: /* shift_expression ::= additive_expression */ - case 62: /* additive_expression ::= multiplicative_expression */ - case 65: /* multiplicative_expression ::= unary_expression */ - case 69: /* unary_expression ::= postfix_expression */ - case 81: /* postfix_expression ::= lefthand_side_expression */ - case 84: /* lefthand_side_expression ::= call_expression */ - case 85: /* lefthand_side_expression ::= member_expression */ - case 87: /* member_expression ::= primary_expression */ - case 88: /* member_expression ::= member_expression member_expression_part */ - case 89: /* primary_expression ::= object_literal */ - case 90: /* primary_expression ::= PARENL expression PARENR */ - case 91: /* primary_expression ::= IDENTIFIER */ - case 92: /* primary_expression ::= array_literal */ - case 93: /* primary_expression ::= DECIMAL */ - case 94: /* primary_expression ::= HEX_INTEGER */ - case 95: /* primary_expression ::= STRING */ - case 96: /* primary_expression ::= BOOLEAN */ - case 97: /* primary_expression ::= NULL */ - case 98: /* array_literal ::= BRACKETL elision BRACKETR */ - case 99: /* array_literal ::= BRACKETL element_list elision BRACKETR */ - case 100: /* array_literal ::= BRACKETL element_list BRACKETR */ - case 101: /* elision ::= COMMA */ - case 102: /* elision ::= elision COMMA */ - case 103: /* element_list ::= assignment_expression */ - case 104: /* element_list ::= elision assignment_expression */ - case 105: /* element_list ::= element_list elision assignment_expression */ - case 106: /* object_literal ::= BRACEL property_name_and_value_list BRACER */ - case 107: /* property_name_and_value_list ::= */ - case 108: /* property_name_and_value_list ::= property_name_and_value_list COMMA property_name_and_value */ - case 109: /* property_name_and_value ::= property_name COLON assignment_expression */ - case 110: /* property_name ::= IDENTIFIER|STRING|DECIMAL */ - case 111: /* member_expression_part ::= BRACKETL expression BRACKETR */ - case 112: /* member_expression_part ::= DOT IDENTIFIER */ -#line 25 "ecmascript.y" -{ -} -#line 1250 "ecmascript.c" - break; case 3: /* query ::= query query_element */ #line 29 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, grn_int32_value_at(&efsi->op_stack, -1), 2); } -#line 1257 "ecmascript.c" +#line 1275 "ecmascript.c" break; case 4: /* query ::= query LOGICAL_AND query_element */ - case 33: /* logical_and_expression ::= logical_and_expression LOGICAL_AND bitwise_or_expression */ + case 33: /* logical_and_expression ::= logical_and_expression LOGICAL_AND bitwise_or_expression */ yytestcase(yyruleno==33); #line 32 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND, 2); } -#line 1265 "ecmascript.c" +#line 1283 "ecmascript.c" break; - case 5: /* query ::= query LOGICAL_BUT query_element */ - case 34: /* logical_and_expression ::= logical_and_expression LOGICAL_BUT bitwise_or_expression */ + case 5: /* query ::= query LOGICAL_AND_NOT query_element */ + case 34: /* logical_and_expression ::= logical_and_expression LOGICAL_AND_NOT bitwise_or_expression */ yytestcase(yyruleno==34); #line 35 "ecmascript.y" { - grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BUT, 2); + grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND_NOT, 2); } -#line 1273 "ecmascript.c" +#line 1291 "ecmascript.c" break; case 6: /* query ::= query LOGICAL_OR query_element */ - case 31: /* logical_or_expression ::= logical_or_expression LOGICAL_OR logical_and_expression */ + case 31: /* logical_or_expression ::= logical_or_expression LOGICAL_OR logical_and_expression */ yytestcase(yyruleno==31); #line 38 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_OR, 2); } -#line 1281 "ecmascript.c" +#line 1299 "ecmascript.c" break; case 9: /* query_element ::= RELATIVE_OP query_element */ #line 45 "ecmascript.y" @@ -1283,7 +1303,7 @@ static void yy_reduce( int mode; GRN_UINT32_POP(&efsi->mode_stack, mode); } -#line 1289 "ecmascript.c" +#line 1307 "ecmascript.c" break; case 10: /* query_element ::= IDENTIFIER RELATIVE_OP query_element */ #line 49 "ecmascript.y" @@ -1293,106 +1313,106 @@ static void yy_reduce( GRN_PTR_POP(&efsi->column_stack, c); GRN_UINT32_POP(&efsi->mode_stack, mode); } -#line 1299 "ecmascript.c" +#line 1317 "ecmascript.c" break; case 11: /* query_element ::= BRACEL expression BRACER */ - case 12: /* query_element ::= EVAL primary_expression */ + case 12: /* query_element ::= EVAL primary_expression */ yytestcase(yyruleno==12); #line 55 "ecmascript.y" { efsi->flags = efsi->default_flags; } -#line 1307 "ecmascript.c" +#line 1325 "ecmascript.c" break; case 14: /* expression ::= expression COMMA assignment_expression */ #line 63 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_COMMA, 2); } -#line 1314 "ecmascript.c" +#line 1332 "ecmascript.c" break; case 16: /* assignment_expression ::= lefthand_side_expression ASSIGN assignment_expression */ #line 68 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_ASSIGN, 2); } -#line 1321 "ecmascript.c" +#line 1339 "ecmascript.c" break; case 17: /* assignment_expression ::= lefthand_side_expression STAR_ASSIGN assignment_expression */ #line 71 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_STAR_ASSIGN, 2); } -#line 1328 "ecmascript.c" +#line 1346 "ecmascript.c" break; case 18: /* assignment_expression ::= lefthand_side_expression SLASH_ASSIGN assignment_expression */ #line 74 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SLASH_ASSIGN, 2); } -#line 1335 "ecmascript.c" +#line 1353 "ecmascript.c" break; case 19: /* assignment_expression ::= lefthand_side_expression MOD_ASSIGN assignment_expression */ #line 77 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MOD_ASSIGN, 2); } -#line 1342 "ecmascript.c" +#line 1360 "ecmascript.c" break; case 20: /* assignment_expression ::= lefthand_side_expression PLUS_ASSIGN assignment_expression */ #line 80 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PLUS_ASSIGN, 2); } -#line 1349 "ecmascript.c" +#line 1367 "ecmascript.c" break; case 21: /* assignment_expression ::= lefthand_side_expression MINUS_ASSIGN assignment_expression */ #line 83 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MINUS_ASSIGN, 2); } -#line 1356 "ecmascript.c" +#line 1374 "ecmascript.c" break; case 22: /* assignment_expression ::= lefthand_side_expression SHIFTL_ASSIGN assignment_expression */ #line 86 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTL_ASSIGN, 2); } -#line 1363 "ecmascript.c" +#line 1381 "ecmascript.c" break; case 23: /* assignment_expression ::= lefthand_side_expression SHIFTR_ASSIGN assignment_expression */ #line 89 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTR_ASSIGN, 2); } -#line 1370 "ecmascript.c" +#line 1388 "ecmascript.c" break; case 24: /* assignment_expression ::= lefthand_side_expression SHIFTRR_ASSIGN assignment_expression */ #line 92 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTRR_ASSIGN, 2); } -#line 1377 "ecmascript.c" +#line 1395 "ecmascript.c" break; case 25: /* assignment_expression ::= lefthand_side_expression AND_ASSIGN assignment_expression */ #line 95 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND_ASSIGN, 2); } -#line 1384 "ecmascript.c" +#line 1402 "ecmascript.c" break; case 26: /* assignment_expression ::= lefthand_side_expression XOR_ASSIGN assignment_expression */ #line 98 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_XOR_ASSIGN, 2); } -#line 1391 "ecmascript.c" +#line 1409 "ecmascript.c" break; case 27: /* assignment_expression ::= lefthand_side_expression OR_ASSIGN assignment_expression */ #line 101 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_OR_ASSIGN, 2); } -#line 1398 "ecmascript.c" +#line 1416 "ecmascript.c" break; case 29: /* conditional_expression ::= logical_or_expression QUESTION assignment_expression COLON assignment_expression */ #line 106 "ecmascript.y" @@ -1401,196 +1421,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 1407 "ecmascript.c" +#line 1425 "ecmascript.c" break; case 36: /* bitwise_or_expression ::= bitwise_or_expression BITWISE_OR bitwise_xor_expression */ #line 126 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_OR, 2); } -#line 1414 "ecmascript.c" +#line 1432 "ecmascript.c" break; case 38: /* bitwise_xor_expression ::= bitwise_xor_expression BITWISE_XOR bitwise_and_expression */ #line 131 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_XOR, 2); } -#line 1421 "ecmascript.c" +#line 1439 "ecmascript.c" break; case 40: /* bitwise_and_expression ::= bitwise_and_expression BITWISE_AND equality_expression */ #line 136 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_AND, 2); } -#line 1428 "ecmascript.c" +#line 1446 "ecmascript.c" break; case 42: /* equality_expression ::= equality_expression EQUAL relational_expression */ #line 141 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_EQUAL, 2); } -#line 1435 "ecmascript.c" +#line 1453 "ecmascript.c" break; case 43: /* equality_expression ::= equality_expression NOT_EQUAL relational_expression */ #line 144 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NOT_EQUAL, 2); } -#line 1442 "ecmascript.c" +#line 1460 "ecmascript.c" break; case 45: /* relational_expression ::= relational_expression LESS shift_expression */ #line 149 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_LESS, 2); } -#line 1449 "ecmascript.c" +#line 1467 "ecmascript.c" break; case 46: /* relational_expression ::= relational_expression GREATER shift_expression */ #line 152 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_GREATER, 2); } -#line 1456 "ecmascript.c" +#line 1474 "ecmascript.c" break; case 47: /* relational_expression ::= relational_expression LESS_EQUAL shift_expression */ #line 155 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_LESS_EQUAL, 2); } -#line 1463 "ecmascript.c" +#line 1481 "ecmascript.c" break; case 48: /* relational_expression ::= relational_expression GREATER_EQUAL shift_expression */ #line 158 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_GREATER_EQUAL, 2); } -#line 1470 "ecmascript.c" +#line 1488 "ecmascript.c" break; case 49: /* relational_expression ::= relational_expression IN shift_expression */ #line 161 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_IN, 2); } -#line 1477 "ecmascript.c" +#line 1495 "ecmascript.c" break; case 50: /* relational_expression ::= relational_expression MATCH shift_expression */ #line 164 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MATCH, 2); } -#line 1484 "ecmascript.c" +#line 1502 "ecmascript.c" break; case 51: /* relational_expression ::= relational_expression NEAR shift_expression */ #line 167 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NEAR, 2); } -#line 1491 "ecmascript.c" +#line 1509 "ecmascript.c" break; case 52: /* relational_expression ::= relational_expression NEAR2 shift_expression */ #line 170 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NEAR2, 2); } -#line 1498 "ecmascript.c" +#line 1516 "ecmascript.c" break; case 53: /* relational_expression ::= relational_expression SIMILAR shift_expression */ #line 173 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SIMILAR, 2); } -#line 1505 "ecmascript.c" +#line 1523 "ecmascript.c" break; case 54: /* relational_expression ::= relational_expression TERM_EXTRACT shift_expression */ #line 176 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_TERM_EXTRACT, 2); } -#line 1512 "ecmascript.c" +#line 1530 "ecmascript.c" break; case 55: /* relational_expression ::= relational_expression LCP shift_expression */ #line 179 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_LCP, 2); } -#line 1519 "ecmascript.c" +#line 1537 "ecmascript.c" break; case 56: /* relational_expression ::= relational_expression PREFIX shift_expression */ #line 182 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PREFIX, 2); } -#line 1526 "ecmascript.c" +#line 1544 "ecmascript.c" break; case 57: /* relational_expression ::= relational_expression SUFFIX shift_expression */ #line 185 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SUFFIX, 2); } -#line 1533 "ecmascript.c" +#line 1551 "ecmascript.c" break; case 59: /* shift_expression ::= shift_expression SHIFTL additive_expression */ #line 190 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTL, 2); } -#line 1540 "ecmascript.c" +#line 1558 "ecmascript.c" break; case 60: /* shift_expression ::= shift_expression SHIFTR additive_expression */ #line 193 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTR, 2); } -#line 1547 "ecmascript.c" +#line 1565 "ecmascript.c" break; case 61: /* shift_expression ::= shift_expression SHIFTRR additive_expression */ #line 196 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SHIFTRR, 2); } -#line 1554 "ecmascript.c" +#line 1572 "ecmascript.c" break; case 63: /* additive_expression ::= additive_expression PLUS multiplicative_expression */ #line 201 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PLUS, 2); } -#line 1561 "ecmascript.c" +#line 1579 "ecmascript.c" break; case 64: /* additive_expression ::= additive_expression MINUS multiplicative_expression */ #line 204 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MINUS, 2); } -#line 1568 "ecmascript.c" +#line 1586 "ecmascript.c" break; case 66: /* multiplicative_expression ::= multiplicative_expression STAR unary_expression */ #line 209 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_STAR, 2); } -#line 1575 "ecmascript.c" +#line 1593 "ecmascript.c" break; case 67: /* multiplicative_expression ::= multiplicative_expression SLASH unary_expression */ #line 212 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_SLASH, 2); } -#line 1582 "ecmascript.c" +#line 1600 "ecmascript.c" break; case 68: /* multiplicative_expression ::= multiplicative_expression MOD unary_expression */ #line 215 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MOD, 2); } -#line 1589 "ecmascript.c" +#line 1607 "ecmascript.c" break; case 70: /* unary_expression ::= DELETE unary_expression */ #line 220 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_DELETE, 1); } -#line 1596 "ecmascript.c" +#line 1614 "ecmascript.c" break; case 71: /* unary_expression ::= INCR unary_expression */ #line 223 "ecmascript.y" @@ -1611,7 +1631,7 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_INCR, 1); } } -#line 1617 "ecmascript.c" +#line 1635 "ecmascript.c" break; case 72: /* unary_expression ::= DECR unary_expression */ #line 240 "ecmascript.y" @@ -1632,63 +1652,63 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_DECR, 1); } } -#line 1638 "ecmascript.c" +#line 1656 "ecmascript.c" break; case 73: /* unary_expression ::= PLUS unary_expression */ #line 257 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PLUS, 1); } -#line 1645 "ecmascript.c" +#line 1663 "ecmascript.c" break; case 74: /* unary_expression ::= MINUS unary_expression */ #line 260 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_MINUS, 1); } -#line 1652 "ecmascript.c" +#line 1670 "ecmascript.c" break; case 75: /* unary_expression ::= NOT unary_expression */ #line 263 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_NOT, 1); } -#line 1659 "ecmascript.c" +#line 1677 "ecmascript.c" break; case 76: /* unary_expression ::= BITWISE_NOT unary_expression */ #line 266 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BITWISE_NOT, 1); } -#line 1666 "ecmascript.c" +#line 1684 "ecmascript.c" break; case 77: /* unary_expression ::= ADJUST unary_expression */ #line 269 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_ADJUST, 1); } -#line 1673 "ecmascript.c" +#line 1691 "ecmascript.c" break; case 78: /* unary_expression ::= EXACT unary_expression */ #line 272 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_EXACT, 1); } -#line 1680 "ecmascript.c" +#line 1698 "ecmascript.c" break; case 79: /* unary_expression ::= PARTIAL unary_expression */ #line 275 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_PARTIAL, 1); } -#line 1687 "ecmascript.c" +#line 1705 "ecmascript.c" break; case 80: /* unary_expression ::= UNSPLIT unary_expression */ #line 278 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_UNSPLIT, 1); } -#line 1694 "ecmascript.c" +#line 1712 "ecmascript.c" break; case 82: /* postfix_expression ::= lefthand_side_expression INCR */ #line 283 "ecmascript.y" @@ -1709,7 +1729,7 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_INCR_POST, 1); } } -#line 1715 "ecmascript.c" +#line 1733 "ecmascript.c" break; case 83: /* postfix_expression ::= lefthand_side_expression DECR */ #line 300 "ecmascript.y" @@ -1730,40 +1750,90 @@ static void yy_reduce( grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_DECR_POST, 1); } } -#line 1736 "ecmascript.c" +#line 1754 "ecmascript.c" break; case 86: /* call_expression ::= member_expression arguments */ #line 321 "ecmascript.y" { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_CALL, yymsp[0].minor.yy0); } -#line 1743 "ecmascript.c" +#line 1761 "ecmascript.c" break; case 113: /* arguments ::= PARENL argument_list PARENR */ #line 360 "ecmascript.y" { yygotominor.yy0 = yymsp[-1].minor.yy0; } -#line 1748 "ecmascript.c" +#line 1766 "ecmascript.c" break; case 114: /* argument_list ::= */ #line 361 "ecmascript.y" { yygotominor.yy0 = 0; } -#line 1753 "ecmascript.c" +#line 1771 "ecmascript.c" break; case 115: /* argument_list ::= assignment_expression */ #line 362 "ecmascript.y" { yygotominor.yy0 = 1; } -#line 1758 "ecmascript.c" +#line 1776 "ecmascript.c" break; case 116: /* argument_list ::= argument_list COMMA assignment_expression */ #line 363 "ecmascript.y" { yygotominor.yy0 = yymsp[-2].minor.yy0 + 1; } -#line 1763 "ecmascript.c" +#line 1781 "ecmascript.c" + break; + default: + /* (0) input ::= query */ yytestcase(yyruleno==0); + /* (1) input ::= expression */ yytestcase(yyruleno==1); + /* (2) query ::= query_element */ yytestcase(yyruleno==2); + /* (7) query_element ::= QSTRING */ yytestcase(yyruleno==7); + /* (8) query_element ::= PARENL query PARENR */ yytestcase(yyruleno==8); + /* (13) expression ::= assignment_expression */ yytestcase(yyruleno==13); + /* (15) assignment_expression ::= conditional_expression */ yytestcase(yyruleno==15); + /* (28) conditional_expression ::= logical_or_expression */ yytestcase(yyruleno==28); + /* (30) logical_or_expression ::= logical_and_expression */ yytestcase(yyruleno==30); + /* (32) logical_and_expression ::= bitwise_or_expression */ yytestcase(yyruleno==32); + /* (35) bitwise_or_expression ::= bitwise_xor_expression */ yytestcase(yyruleno==35); + /* (37) bitwise_xor_expression ::= bitwise_and_expression */ yytestcase(yyruleno==37); + /* (39) bitwise_and_expression ::= equality_expression */ yytestcase(yyruleno==39); + /* (41) equality_expression ::= relational_expression */ yytestcase(yyruleno==41); + /* (44) relational_expression ::= shift_expression */ yytestcase(yyruleno==44); + /* (58) shift_expression ::= additive_expression */ yytestcase(yyruleno==58); + /* (62) additive_expression ::= multiplicative_expression */ yytestcase(yyruleno==62); + /* (65) multiplicative_expression ::= unary_expression */ yytestcase(yyruleno==65); + /* (69) unary_expression ::= postfix_expression */ yytestcase(yyruleno==69); + /* (81) postfix_expression ::= lefthand_side_expression */ yytestcase(yyruleno==81); + /* (84) lefthand_side_expression ::= call_expression */ yytestcase(yyruleno==84); + /* (85) lefthand_side_expression ::= member_expression */ yytestcase(yyruleno==85); + /* (87) member_expression ::= primary_expression */ yytestcase(yyruleno==87); + /* (88) member_expression ::= member_expression member_expression_part */ yytestcase(yyruleno==88); + /* (89) primary_expression ::= object_literal */ yytestcase(yyruleno==89); + /* (90) primary_expression ::= PARENL expression PARENR */ yytestcase(yyruleno==90); + /* (91) primary_expression ::= IDENTIFIER */ yytestcase(yyruleno==91); + /* (92) primary_expression ::= array_literal */ yytestcase(yyruleno==92); + /* (93) primary_expression ::= DECIMAL */ yytestcase(yyruleno==93); + /* (94) primary_expression ::= HEX_INTEGER */ yytestcase(yyruleno==94); + /* (95) primary_expression ::= STRING */ yytestcase(yyruleno==95); + /* (96) primary_expression ::= BOOLEAN */ yytestcase(yyruleno==96); + /* (97) primary_expression ::= NULL */ yytestcase(yyruleno==97); + /* (98) array_literal ::= BRACKETL elision BRACKETR */ yytestcase(yyruleno==98); + /* (99) array_literal ::= BRACKETL element_list elision BRACKETR */ yytestcase(yyruleno==99); + /* (100) array_literal ::= BRACKETL element_list BRACKETR */ yytestcase(yyruleno==100); + /* (101) elision ::= COMMA */ yytestcase(yyruleno==101); + /* (102) elision ::= elision COMMA */ yytestcase(yyruleno==102); + /* (103) element_list ::= assignment_expression */ yytestcase(yyruleno==103); + /* (104) element_list ::= elision assignment_expression */ yytestcase(yyruleno==104); + /* (105) element_list ::= element_list elision assignment_expression */ yytestcase(yyruleno==105); + /* (106) object_literal ::= BRACEL property_name_and_value_list BRACER */ yytestcase(yyruleno==106); + /* (107) property_name_and_value_list ::= */ yytestcase(yyruleno==107); + /* (108) property_name_and_value_list ::= property_name_and_value_list COMMA property_name_and_value */ yytestcase(yyruleno==108); + /* (109) property_name_and_value ::= property_name COLON assignment_expression */ yytestcase(yyruleno==109); + /* (110) property_name ::= IDENTIFIER|STRING|DECIMAL */ yytestcase(yyruleno==110); + /* (111) member_expression_part ::= BRACKETL expression BRACKETR */ yytestcase(yyruleno==111); + /* (112) member_expression_part ::= DOT IDENTIFIER */ yytestcase(yyruleno==112); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yymsp[-yysize].stateno,yygoto); + yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); if( yyact < YYNSTATE ){ #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least @@ -1773,8 +1843,8 @@ static void yy_reduce( if( yysize ){ yypParser->yyidx++; yymsp -= yysize-1; - yymsp->stateno = yyact; - yymsp->major = yygoto; + yymsp->stateno = (YYACTIONTYPE)yyact; + yymsp->major = (YYCODETYPE)yygoto; yymsp->minor = yygotominor; }else #endif @@ -1790,6 +1860,7 @@ static void yy_reduce( /* ** The following code executes when the parse fails */ +#ifndef YYNOERRORRECOVERY static void yy_parse_failed( yyParser *yypParser /* The parser */ ){ @@ -1804,6 +1875,7 @@ static void yy_parse_failed( ** parser fails */ grn_expr_parserARG_STORE; /* Suppress warning about unused %extra_argument variable */ } +#endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. @@ -1828,7 +1900,7 @@ static void yy_syntax_error( GRN_OBJ_FIN(ctx, &buf); } } -#line 1836 "ecmascript.c" +#line 1904 "ecmascript.c" grn_expr_parserARG_STORE; /* Suppress warning about unused %extra_argument variable */ } @@ -1910,7 +1982,7 @@ void grn_expr_parser( #endif do{ - yyact = yy_find_shift_action(yypParser,yymajor); + yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); if( yyact<YYNSTATE ){ assert( !yyendofinput ); /* Impossible to shift the $ token */ yy_shift(yypParser,yyact,yymajor,&yyminorunion); @@ -1959,7 +2031,7 @@ void grn_expr_parser( yyTracePrompt,yyTokenName[yymajor]); } #endif - yy_destructor(yymajor,&yyminorunion); + yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); yymajor = YYNOCODE; }else{ while( @@ -1972,7 +2044,7 @@ void grn_expr_parser( yy_pop_parser_stack(yypParser); } if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yymajor,&yyminorunion); + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yy_parse_failed(yypParser); yymajor = YYNOCODE; }else if( yymx!=YYERRORSYMBOL ){ @@ -1983,6 +2055,18 @@ void grn_expr_parser( } yypParser->yyerrcnt = 3; yyerrorhit = 1; +#elif defined(YYNOERRORRECOVERY) + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error(yypParser,yymajor,yyminorunion); + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); + yymajor = YYNOCODE; + #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** @@ -1997,7 +2081,7 @@ void grn_expr_parser( yy_syntax_error(yypParser,yymajor,yyminorunion); } yypParser->yyerrcnt = 3; - yy_destructor(yymajor,&yyminorunion); + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); if( yyendofinput ){ yy_parse_failed(yypParser); } Modified: lib/ecmascript.h (+1 -1) =================================================================== --- lib/ecmascript.h 2012-07-24 16:50:47 +0900 (4f05ad3) +++ lib/ecmascript.h 2012-07-24 17:03:33 +0900 (fecc0e4) @@ -1,5 +1,5 @@ #define GRN_EXPR_TOKEN_LOGICAL_AND 1 -#define GRN_EXPR_TOKEN_LOGICAL_BUT 2 +#define GRN_EXPR_TOKEN_LOGICAL_AND_NOT 2 #define GRN_EXPR_TOKEN_LOGICAL_OR 3 #define GRN_EXPR_TOKEN_QSTRING 4 #define GRN_EXPR_TOKEN_PARENL 5 Modified: lib/ecmascript.y (+4 -4) =================================================================== --- lib/ecmascript.y 2012-07-24 16:50:47 +0900 (3006ae7) +++ lib/ecmascript.y 2012-07-24 17:03:33 +0900 (5ac13ed) @@ -32,8 +32,8 @@ query ::= query query_element. { query ::= query LOGICAL_AND query_element. { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND, 2); } -query ::= query LOGICAL_BUT query_element.{ - grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BUT, 2); +query ::= query LOGICAL_AND_NOT query_element.{ + grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND_NOT, 2); } query ::= query LOGICAL_OR query_element.{ grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_OR, 2); @@ -118,8 +118,8 @@ logical_and_expression ::= bitwise_or_expression. logical_and_expression ::= logical_and_expression LOGICAL_AND bitwise_or_expression. { grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND, 2); } -logical_and_expression ::= logical_and_expression LOGICAL_BUT bitwise_or_expression. { - grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_BUT, 2); +logical_and_expression ::= logical_and_expression LOGICAL_AND_NOT bitwise_or_expression. { + grn_expr_append_op(efsi->ctx, efsi->e, GRN_OP_AND_NOT, 2); } bitwise_or_expression ::= bitwise_xor_expression. Modified: lib/expr.c (+18 -18) =================================================================== --- lib/expr.c 2012-07-24 16:50:47 +0900 (e01ac32) +++ lib/expr.c 2012-07-24 17:03:33 +0900 (9400a03) @@ -978,7 +978,7 @@ grn_expr_append_obj(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, break; case GRN_OP_AND : case GRN_OP_OR : - case GRN_OP_BUT : + case GRN_OP_AND_NOT : PUSH_CODE(e, op, obj, nargs, code); if (nargs != 2) { GRN_LOG(ctx, GRN_LOG_WARNING, "nargs(%d) != 2 in relative op", nargs); @@ -2847,7 +2847,7 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs) } code++; break; - case GRN_OP_BUT : + case GRN_OP_AND_NOT : { grn_obj *x, *y; POP2ALLOC1(x, y, res); @@ -3402,7 +3402,7 @@ res_add(grn_ctx *ctx, grn_hash *s, grn_rset_posinfo *pi, uint32_t score, grn_table_add_subrec((grn_obj *)s, ri, score, pi, 1); } break; - case GRN_OP_BUT : + case GRN_OP_AND_NOT : { grn_id id; if ((id = grn_hash_get(ctx, s, pi, s->key_size, (void **)&ri))) { @@ -3481,7 +3481,7 @@ put_logical_op(grn_ctx *ctx, scan_info **sis, int *ip, grn_operator op, int star if (!(--nparens)) { if (!r) { if (ndifops) { - if (j && op != GRN_OP_BUT) { + if (j && op != GRN_OP_AND_NOT) { nparens = 1; ndifops = 0; r = j; @@ -3516,7 +3516,7 @@ put_logical_op(grn_ctx *ctx, scan_info **sis, int *ip, grn_operator op, int star } } } else { - if ((op == GRN_OP_BUT) || (op != s_->logical_op)) { + if ((op == GRN_OP_AND_NOT) || (op != s_->logical_op)) { ndifops++; } } @@ -3624,7 +3624,7 @@ scan_info_build(grn_ctx *ctx, grn_obj *expr, int *n, break; case GRN_OP_AND : case GRN_OP_OR : - case GRN_OP_BUT : + case GRN_OP_AND_NOT : case GRN_OP_ADJUST : if (stat != SCAN_START) { return NULL; } o++; @@ -3735,7 +3735,7 @@ scan_info_build(grn_ctx *ctx, grn_obj *expr, int *n, break; case GRN_OP_AND : case GRN_OP_OR : - case GRN_OP_BUT : + case GRN_OP_AND_NOT : case GRN_OP_ADJUST : if (!put_logical_op(ctx, sis, &i, c->op, c - e->codes)) { return NULL; } stat = SCAN_START; @@ -3888,7 +3888,7 @@ grn_table_select_(grn_ctx *ctx, grn_obj *table, grn_obj *expr, grn_obj *v, grn_hash_cursor_close(ctx, hc); } break; - case GRN_OP_BUT : + case GRN_OP_AND_NOT : if ((hc = grn_hash_cursor_open(ctx, s, NULL, 0, NULL, 0, 0, -1, 0))) { while (grn_hash_cursor_next(ctx, hc)) { grn_hash_cursor_get_key(ctx, hc, (void **) &idp); @@ -4661,9 +4661,9 @@ get_token(grn_ctx *ctx, efs_info *q, efs_op *op, grn_obj *column, grn_operator m q->cur++; op->op = GRN_OP_AND; break; - case GRN_QUERY_BUT : + case GRN_QUERY_AND_NOT : q->cur++; - op->op = GRN_OP_BUT; + op->op = GRN_OP_AND_NOT; break; case GRN_QUERY_ADJ_INC : q->cur++; @@ -4798,8 +4798,8 @@ get_pragma(grn_ctx *ctx, efs_info *q) case GRN_QUERY_AND : q->default_op = GRN_OP_AND; break; - case GRN_QUERY_BUT : - q->default_op = GRN_OP_BUT; + case GRN_QUERY_AND_NOT : + q->default_op = GRN_OP_AND_NOT; break; case GRN_QUERY_ADJ_INC : q->default_op = GRN_OP_ADJUST; @@ -5036,10 +5036,10 @@ parse_query(grn_ctx *ctx, efs_info *q) PARSE(GRN_EXPR_TOKEN_LOGICAL_AND); } break; - case GRN_QUERY_BUT : + case GRN_QUERY_AND_NOT : q->cur++; - op->op = GRN_OP_BUT; - PARSE(GRN_EXPR_TOKEN_LOGICAL_BUT); + op->op = GRN_OP_AND_NOT; + PARSE(GRN_EXPR_TOKEN_LOGICAL_AND_NOT); break; case GRN_QUERY_ADJ_INC : q->cur++; @@ -5494,7 +5494,7 @@ parse_script(grn_ctx *ctx, efs_info *q) break; case '!' : q->cur++; - PARSE(GRN_EXPR_TOKEN_LOGICAL_BUT); + PARSE(GRN_EXPR_TOKEN_LOGICAL_AND_NOT); break; default : PARSE(GRN_EXPR_TOKEN_BITWISE_AND); @@ -5747,14 +5747,14 @@ grn_expr_snip(grn_ctx *ctx, grn_obj *expr, int flags, si = sis[i]; if (si->flags & SCAN_POP) { nparens++; - if (si->logical_op == GRN_OP_BUT) { + if (si->logical_op == GRN_OP_AND_NOT) { GRN_UINT32_PUT(ctx, &but_stack, npbut); npbut = nparens; butp = 1 - butp; } } else { if (si->op == GRN_OP_MATCH && si->query) { - if (butp == (si->logical_op == GRN_OP_BUT)) { + if (butp == (si->logical_op == GRN_OP_AND_NOT)) { GRN_PTR_PUT(ctx, &snip_stack, si->query); } } Modified: lib/ii.c (+1 -1) =================================================================== --- lib/ii.c 2012-07-24 16:50:47 +0900 (ec7b234) +++ lib/ii.c 2012-07-24 17:03:33 +0900 (04a7e90) @@ -5480,7 +5480,7 @@ res_add(grn_ctx *ctx, grn_hash *s, grn_rset_posinfo *pi, uint32_t score, } } break; - case GRN_OP_BUT : + case GRN_OP_AND_NOT : { grn_id id; if ((id = grn_hash_get(ctx, s, pi, s->key_size, (void **)&ri))) { Modified: lib/proc.c (+1 -1) =================================================================== --- lib/proc.c 2012-07-24 16:50:47 +0900 (51f10d5) +++ lib/proc.c 2012-07-24 17:03:33 +0900 (80e92c2) @@ -150,7 +150,7 @@ expand_query(grn_ctx *ctx, grn_obj *table, grn_obj *column, grn_expr_flags flags case GRN_QUERY_ADJ_INC : case GRN_QUERY_ADJ_DEC : case GRN_QUERY_ADJ_NEG : - case GRN_QUERY_BUT : + case GRN_QUERY_AND_NOT : case GRN_QUERY_PARENL : case GRN_QUERY_PARENR : case GRN_QUERY_PREFIX : -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...Download