Index: trunk/src_plugins/query/query_y.c =================================================================== --- trunk/src_plugins/query/query_y.c (revision 35678) +++ trunk/src_plugins/query/query_y.c (revision 35679) @@ -553,7 +553,7 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 249 +#define YYLAST 265 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 41 @@ -560,9 +560,9 @@ /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 32 /* YYNRULES -- Number of rules. */ -#define YYNRULES 80 +#define YYNRULES 82 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 134 +#define YYNSTATES 139 #define YYUNDEFTOK 2 #define YYMAXUTOK 281 @@ -616,10 +616,10 @@ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 287, 288, 289, 290, 294, 298, 299, 303, 304, 305, - 306, 307, 311, 312, 313, 318, 317, 337, 336, 351, - 350, 364, 365, 366, 367, 372, 392, 393, 397, 412, - 413, 418, 425, 426, 430, 437, 438, 443, 442, 464, - 465 + 306, 307, 308, 309, 313, 314, 315, 320, 319, 339, + 338, 353, 352, 366, 367, 368, 369, 374, 394, 395, + 399, 414, 415, 420, 427, 428, 432, 439, 440, 445, + 444, 466, 467 }; #endif @@ -655,12 +655,12 @@ }; # endif -#define YYPACT_NINF -90 +#define YYPACT_NINF -83 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-90))) + (!!((Yystate) == (-83))) -#define YYTABLE_NINF -69 +#define YYTABLE_NINF -71 #define yytable_value_is_error(Yytable_value) \ 0 @@ -669,20 +669,20 @@ STATE-NUM. */ static const yytype_int16 yypact[] = { - 4, -11, -7, 16, -90, 34, -90, 2, 13, -90, - -11, -90, -90, -90, -90, 1, -90, 28, -90, 45, - 45, -90, 85, 34, 34, -90, 46, 114, -90, -90, - -90, -90, -90, 75, -90, 27, -90, 88, -10, -90, - -90, -90, 45, 45, 87, 89, -90, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 62, 78, -1, -90, -90, -90, -90, 94, 115, 116, - -19, -90, 97, 100, -90, -90, -90, 163, 186, 203, - 203, 212, 212, 139, 212, 212, 29, 29, -25, -25, - 76, 90, 104, -90, -90, -90, -90, 61, 102, 118, - 34, 34, 27, 27, 27, -90, -90, 108, 113, -90, - -90, 129, -90, 125, -90, -90, 62, 34, -90, 34, - 114, 114, -90, -90, -90, 138, -90, -90, 90, -90, - -90, 114, -90, -90 + 58, -12, -4, 36, -83, -1, -83, 5, 43, -83, + -12, -83, -83, -83, -83, 32, -83, 42, -83, 67, + 67, -83, 7, -1, -1, -83, 78, 130, -83, -83, + -83, -83, -83, 63, -83, 56, -83, 65, -6, -83, + -83, -83, 67, 67, 64, 105, -83, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 19, 50, -83, -83, -83, -83, 83, 92, 93, + 40, -83, 79, 88, -83, -83, -83, 179, 202, 219, + 219, 228, 228, 155, 228, 228, 33, 33, -26, -26, + -7, 57, 80, 102, -83, -83, -83, -83, 77, 90, + 106, -1, -1, 56, 56, 56, -83, -83, 89, 94, + -83, -83, 107, -83, 116, -83, -83, 4, 103, -1, + -83, -1, 130, 130, -83, -83, -83, 119, -83, -83, + 57, -83, 117, -83, 130, -83, -83, 4, -83 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -690,37 +690,37 @@ means the default is an error. */ static const yytype_uint8 yydefact[] = { - 4, 79, 0, 0, 3, 0, 2, 6, 0, 9, - 79, 10, 74, 77, 1, 0, 18, 61, 44, 45, - 45, 36, 0, 0, 0, 64, 0, 5, 16, 17, - 37, 38, 15, 0, 7, 11, 80, 0, 0, 46, - 40, 41, 45, 45, 19, 0, 65, 0, 0, 0, + 4, 81, 0, 0, 3, 0, 2, 6, 0, 9, + 81, 10, 76, 79, 1, 0, 18, 63, 44, 45, + 45, 36, 0, 0, 0, 66, 0, 5, 16, 17, + 37, 38, 15, 0, 7, 11, 82, 0, 0, 46, + 40, 41, 45, 45, 19, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 57, 59, 8, 0, 0, 0, - 0, 78, 0, 0, 42, 43, 20, 23, 22, 24, + 0, 0, 0, 57, 59, 61, 8, 0, 0, 0, + 0, 80, 0, 0, 42, 43, 20, 23, 22, 24, 25, 26, 27, 21, 29, 28, 30, 31, 32, 33, - 0, 0, 47, 39, 34, 35, 67, 69, 0, 0, - 0, 0, 11, 11, 11, 71, 76, 72, 0, 63, - 62, 0, 49, 52, 54, 51, 0, 0, 66, 0, - 58, 60, 13, 12, 14, 0, 75, 50, 0, 48, - 70, 56, 73, 53 + 0, 0, 47, 0, 39, 34, 35, 69, 71, 0, + 0, 0, 0, 11, 11, 11, 73, 78, 74, 0, + 65, 64, 0, 51, 54, 56, 53, 0, 0, 0, + 68, 0, 60, 62, 13, 12, 14, 0, 77, 52, + 0, 48, 49, 72, 58, 75, 55, 0, 50 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -90, -90, -90, -90, 153, -90, -90, -22, -5, -90, - -90, -17, -89, 33, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -90, 47, 37, -90, -90, -90, -90, - -90, 155 + -83, -83, -83, -83, 144, -83, -83, -22, -5, -83, + -83, -16, -82, 22, -83, -83, -83, -83, -83, -83, + -83, -83, -83, -83, 34, 27, -83, -83, -83, -83, + -83, 145 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 3, 4, 5, 6, 7, 8, 66, 97, 28, - 29, 40, 93, 115, 67, 99, 68, 100, 69, 101, - 30, 31, 32, 33, 98, 107, 108, 13, 71, 9, + -1, 3, 4, 5, 6, 7, 8, 66, 98, 28, + 29, 40, 94, 116, 67, 100, 68, 101, 69, 102, + 30, 31, 32, 33, 99, 108, 109, 13, 71, 9, 37, 11 }; @@ -729,60 +729,64 @@ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 27, 112, 105, 41, -6, 15, 16, 1, 60, 1, - 10, 72, 61, 2, 12, 2, 14, 106, 44, 45, - 17, 18, 19, 20, 21, 74, 75, 129, 73, 22, - 63, 64, 35, 23, 24, 96, 38, 25, 26, 65, - 15, 16, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 17, 18, 19, 20, 21, - 58, 59, 60, -68, 22, 39, 61, 46, 23, 24, - 90, 91, 25, 26, 47, 48, 49, 50, 51, 52, - 122, 123, 124, 92, 90, 91, 111, 53, 54, 55, - 56, 57, 58, 59, 60, 120, 121, 92, 61, 94, - 95, 117, 47, 48, 49, 50, 51, 52, 42, 43, - 62, 113, 114, 102, 131, 53, 54, 55, 56, 57, - 58, 59, 60, 70, 61, 76, 61, 47, 48, 49, - 50, 51, 52, 109, 103, 104, 110, 116, 118, 119, - 53, 54, 55, 56, 57, 58, 59, 60, 125, 126, - 127, 61, 47, 48, 49, 50, 51, 52, 128, 105, - 34, 133, 132, 0, 130, 36, 54, 55, 56, 57, - 58, 59, 60, 0, 0, 0, 61, 48, 49, 50, - 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, - 61, 49, 50, 51, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 55, 56, 57, 58, 59, 60, - 51, 52, 0, 61, 0, 0, 0, 0, 0, 0, - 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, - 61, 56, 57, 58, 59, 60, 0, 0, 0, 61 + 27, 90, 91, 112, 41, 15, 16, 60, 113, 10, + 1, 61, 90, 91, 92, 72, 2, 12, 44, 45, + 17, 18, 19, 20, 21, 92, 74, 75, 93, 22, + 42, 43, 73, 23, 24, 131, 14, 25, 26, 93, + 95, 96, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 138, 15, 16, -6, 63, + 64, 106, 35, 1, 58, 59, 60, 38, 65, 2, + 61, 17, 18, 19, 20, 21, 107, -70, 114, 115, + 22, 124, 125, 126, 23, 24, 97, 39, 25, 26, + 47, 48, 49, 50, 51, 52, 122, 123, 62, 46, + 70, 61, 103, 53, 54, 55, 56, 57, 58, 59, + 60, 104, 105, 117, 61, 110, 134, 119, 47, 48, + 49, 50, 51, 52, 111, 118, 120, 121, 129, 127, + 128, 53, 54, 55, 56, 57, 58, 59, 60, 132, + 106, 76, 61, 47, 48, 49, 50, 51, 52, 130, + 137, 34, 136, 133, 135, 36, 53, 54, 55, 56, + 57, 58, 59, 60, 0, 0, 0, 61, 47, 48, + 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 55, 56, 57, 58, 59, 60, 0, + 0, 0, 61, 48, 49, 50, 51, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 55, 56, 57, + 58, 59, 60, 0, 0, 0, 61, 49, 50, 51, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 55, 56, 57, 58, 59, 60, 51, 52, 0, 61, + 0, 0, 0, 0, 0, 0, 54, 55, 56, 57, + 58, 59, 60, 0, 0, 0, 61, 56, 57, 58, + 59, 60, 0, 0, 0, 61 }; static const yytype_int16 yycheck[] = { - 5, 90, 21, 20, 0, 6, 7, 5, 33, 5, - 21, 21, 37, 11, 21, 11, 0, 36, 23, 24, - 21, 22, 23, 24, 25, 42, 43, 116, 38, 30, - 3, 4, 19, 34, 35, 36, 35, 38, 39, 12, - 6, 7, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 21, 22, 23, 24, 25, - 31, 32, 33, 35, 30, 20, 37, 21, 34, 35, - 8, 9, 38, 39, 13, 14, 15, 16, 17, 18, - 102, 103, 104, 21, 8, 9, 10, 26, 27, 28, - 29, 30, 31, 32, 33, 100, 101, 21, 37, 21, - 22, 40, 13, 14, 15, 16, 17, 18, 23, 24, - 35, 21, 22, 19, 119, 26, 27, 28, 29, 30, - 31, 32, 33, 35, 37, 36, 37, 13, 14, 15, - 16, 17, 18, 36, 19, 19, 36, 33, 36, 21, - 26, 27, 28, 29, 30, 31, 32, 33, 40, 36, - 21, 37, 13, 14, 15, 16, 17, 18, 33, 21, - 7, 128, 125, -1, 117, 10, 27, 28, 29, 30, - 31, 32, 33, -1, -1, -1, 37, 14, 15, 16, - 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, - 27, 28, 29, 30, 31, 32, 33, -1, -1, -1, - 37, 15, 16, 17, 18, -1, -1, -1, -1, -1, - -1, -1, -1, 27, 28, 29, 30, 31, 32, 33, - 17, 18, -1, 37, -1, -1, -1, -1, -1, -1, - 27, 28, 29, 30, 31, 32, 33, -1, -1, -1, - 37, 29, 30, 31, 32, 33, -1, -1, -1, 37 + 5, 8, 9, 10, 20, 6, 7, 33, 90, 21, + 5, 37, 8, 9, 21, 21, 11, 21, 23, 24, + 21, 22, 23, 24, 25, 21, 42, 43, 35, 30, + 23, 24, 38, 34, 35, 117, 0, 38, 39, 35, + 21, 22, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 137, 6, 7, 0, 3, + 4, 21, 19, 5, 31, 32, 33, 35, 12, 11, + 37, 21, 22, 23, 24, 25, 36, 35, 21, 22, + 30, 103, 104, 105, 34, 35, 36, 20, 38, 39, + 13, 14, 15, 16, 17, 18, 101, 102, 35, 21, + 35, 37, 19, 26, 27, 28, 29, 30, 31, 32, + 33, 19, 19, 33, 37, 36, 121, 40, 13, 14, + 15, 16, 17, 18, 36, 23, 36, 21, 21, 40, + 36, 26, 27, 28, 29, 30, 31, 32, 33, 36, + 21, 36, 37, 13, 14, 15, 16, 17, 18, 33, + 33, 7, 130, 119, 127, 10, 26, 27, 28, 29, + 30, 31, 32, 33, -1, -1, -1, 37, 13, 14, + 15, 16, 17, 18, -1, -1, -1, -1, -1, -1, + -1, -1, 27, 28, 29, 30, 31, 32, 33, -1, + -1, -1, 37, 14, 15, 16, 17, 18, -1, -1, + -1, -1, -1, -1, -1, -1, 27, 28, 29, 30, + 31, 32, 33, -1, -1, -1, 37, 15, 16, 17, + 18, -1, -1, -1, -1, -1, -1, -1, -1, 27, + 28, 29, 30, 31, 32, 33, 17, 18, -1, 37, + -1, -1, -1, -1, -1, -1, 27, 28, 29, 30, + 31, 32, 33, -1, -1, -1, 37, 29, 30, 31, + 32, 33, -1, -1, -1, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -798,11 +802,11 @@ 33, 37, 35, 3, 4, 12, 48, 55, 57, 59, 35, 69, 21, 38, 52, 52, 36, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 8, 9, 21, 53, 21, 22, 36, 49, 65, 56, - 58, 60, 19, 19, 19, 21, 36, 66, 67, 36, - 36, 10, 53, 21, 22, 54, 33, 40, 36, 21, - 49, 49, 48, 48, 48, 40, 36, 21, 33, 53, - 65, 49, 66, 54 + 8, 9, 21, 35, 53, 21, 22, 36, 49, 65, + 56, 58, 60, 19, 19, 19, 21, 36, 66, 67, + 36, 36, 10, 53, 21, 22, 54, 33, 23, 40, + 36, 21, 49, 49, 48, 48, 48, 40, 36, 21, + 33, 53, 36, 65, 49, 66, 54, 33, 53 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -813,10 +817,10 @@ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 51, 52, 52, 53, 53, 53, - 53, 53, 54, 54, 54, 56, 55, 58, 57, 60, - 59, 61, 61, 61, 61, 62, 63, 63, 64, 65, - 65, 66, 67, 67, 68, 69, 69, 71, 70, 72, - 72 + 53, 53, 53, 53, 54, 54, 54, 56, 55, 58, + 57, 60, 59, 61, 61, 61, 61, 62, 63, 63, + 64, 65, 65, 66, 67, 67, 68, 69, 69, 71, + 70, 72, 72 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -826,11 +830,11 @@ 2, 0, 3, 3, 3, 1, 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, - 2, 2, 3, 3, 1, 0, 1, 1, 3, 2, - 3, 2, 1, 3, 1, 0, 4, 0, 3, 0, - 3, 1, 4, 4, 1, 2, 4, 3, 1, 1, - 3, 1, 1, 3, 1, 3, 2, 0, 4, 0, - 2 + 2, 2, 3, 3, 1, 0, 1, 1, 3, 3, + 5, 2, 3, 2, 1, 3, 1, 0, 4, 0, + 3, 0, 3, 1, 4, 4, 1, 2, 4, 3, + 1, 1, 3, 1, 1, 3, 1, 3, 2, 0, + 4, 0, 2 }; @@ -1520,19 +1524,19 @@ case 2: #line 199 "query_y.y" /* yacc.c:1652 */ { *prg_out = (yyvsp[0].n); link_user_funcs((yyvsp[0].n), 1); } -#line 1524 "query_y.c" /* yacc.c:1652 */ +#line 1528 "query_y.c" /* yacc.c:1652 */ break; case 3: #line 200 "query_y.y" /* yacc.c:1652 */ { *prg_out = (yyvsp[0].n); assert(user_funcs == NULL); link_user_funcs((yyvsp[0].n), 0); } -#line 1530 "query_y.c" /* yacc.c:1652 */ +#line 1534 "query_y.c" /* yacc.c:1652 */ break; case 4: #line 205 "query_y.y" /* yacc.c:1652 */ { iter_ctx = pcb_qry_iter_alloc(); } -#line 1536 "query_y.c" /* yacc.c:1652 */ +#line 1540 "query_y.c" /* yacc.c:1652 */ break; case 5: @@ -1545,19 +1549,19 @@ (yyval.n)->data.children->next = (yyvsp[0].n); (yyvsp[0].n)->parent = (yyval.n); } -#line 1549 "query_y.c" /* yacc.c:1652 */ +#line 1553 "query_y.c" /* yacc.c:1652 */ break; case 6: #line 218 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = NULL; } -#line 1555 "query_y.c" /* yacc.c:1652 */ +#line 1559 "query_y.c" /* yacc.c:1652 */ break; case 7: #line 219 "query_y.y" /* yacc.c:1652 */ { if ((yyvsp[-1].n) != NULL) { (yyval.n) = (yyvsp[-1].n); (yyvsp[-1].n)->next = (yyvsp[0].n); } else { (yyval.n) = (yyvsp[0].n); } } -#line 1561 "query_y.c" /* yacc.c:1652 */ +#line 1565 "query_y.c" /* yacc.c:1652 */ break; case 8: @@ -1567,13 +1571,13 @@ if ((yyvsp[0].n) != NULL) pcb_qry_n_append((yyval.n), (yyvsp[0].n)); } -#line 1571 "query_y.c" /* yacc.c:1652 */ +#line 1575 "query_y.c" /* yacc.c:1652 */ break; case 9: #line 231 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 1577 "query_y.c" /* yacc.c:1652 */ +#line 1581 "query_y.c" /* yacc.c:1652 */ break; case 10: @@ -1587,175 +1591,175 @@ nd->data.iter_ctx = iter_ctx; pcb_qry_n_insert((yyval.n), nd); } -#line 1591 "query_y.c" /* yacc.c:1652 */ +#line 1595 "query_y.c" /* yacc.c:1652 */ break; case 11: #line 244 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = NULL; } -#line 1597 "query_y.c" /* yacc.c:1652 */ +#line 1601 "query_y.c" /* yacc.c:1652 */ break; case 12: #line 245 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[-2].n); (yyvsp[-2].n)->next = (yyvsp[0].n); } -#line 1603 "query_y.c" /* yacc.c:1652 */ +#line 1607 "query_y.c" /* yacc.c:1652 */ break; case 13: #line 246 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[-2].n); (yyvsp[-2].n)->next = (yyvsp[0].n); } -#line 1609 "query_y.c" /* yacc.c:1652 */ +#line 1613 "query_y.c" /* yacc.c:1652 */ break; case 14: #line 247 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[-2].n); (yyvsp[-2].n)->next = (yyvsp[0].n); } -#line 1615 "query_y.c" /* yacc.c:1652 */ +#line 1619 "query_y.c" /* yacc.c:1652 */ break; case 15: #line 251 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 1621 "query_y.c" /* yacc.c:1652 */ +#line 1625 "query_y.c" /* yacc.c:1652 */ break; case 16: #line 252 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 1627 "query_y.c" /* yacc.c:1652 */ +#line 1631 "query_y.c" /* yacc.c:1652 */ break; case 17: #line 253 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 1633 "query_y.c" /* yacc.c:1652 */ +#line 1637 "query_y.c" /* yacc.c:1652 */ break; case 18: #line 254 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_INVALID); } -#line 1639 "query_y.c" /* yacc.c:1652 */ +#line 1643 "query_y.c" /* yacc.c:1652 */ break; case 19: #line 255 "query_y.y" /* yacc.c:1652 */ { UNOP((yyval.n), PCBQ_OP_NOT, (yyvsp[0].n)); } -#line 1645 "query_y.c" /* yacc.c:1652 */ +#line 1649 "query_y.c" /* yacc.c:1652 */ break; case 20: #line 256 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[-1].n); } -#line 1651 "query_y.c" /* yacc.c:1652 */ +#line 1655 "query_y.c" /* yacc.c:1652 */ break; case 21: #line 257 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_THUS, (yyvsp[0].n)); } -#line 1657 "query_y.c" /* yacc.c:1652 */ +#line 1661 "query_y.c" /* yacc.c:1652 */ break; case 22: #line 258 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_AND, (yyvsp[0].n)); } -#line 1663 "query_y.c" /* yacc.c:1652 */ +#line 1667 "query_y.c" /* yacc.c:1652 */ break; case 23: #line 259 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_OR, (yyvsp[0].n)); } -#line 1669 "query_y.c" /* yacc.c:1652 */ +#line 1673 "query_y.c" /* yacc.c:1652 */ break; case 24: #line 260 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_EQ, (yyvsp[0].n)); } -#line 1675 "query_y.c" /* yacc.c:1652 */ +#line 1679 "query_y.c" /* yacc.c:1652 */ break; case 25: #line 261 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_NEQ, (yyvsp[0].n)); } -#line 1681 "query_y.c" /* yacc.c:1652 */ +#line 1685 "query_y.c" /* yacc.c:1652 */ break; case 26: #line 262 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_GTEQ, (yyvsp[0].n)); } -#line 1687 "query_y.c" /* yacc.c:1652 */ +#line 1691 "query_y.c" /* yacc.c:1652 */ break; case 27: #line 263 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_LTEQ, (yyvsp[0].n)); } -#line 1693 "query_y.c" /* yacc.c:1652 */ +#line 1697 "query_y.c" /* yacc.c:1652 */ break; case 28: #line 264 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_GT, (yyvsp[0].n)); } -#line 1699 "query_y.c" /* yacc.c:1652 */ +#line 1703 "query_y.c" /* yacc.c:1652 */ break; case 29: #line 265 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_LT, (yyvsp[0].n)); } -#line 1705 "query_y.c" /* yacc.c:1652 */ +#line 1709 "query_y.c" /* yacc.c:1652 */ break; case 30: #line 266 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_ADD, (yyvsp[0].n)); } -#line 1711 "query_y.c" /* yacc.c:1652 */ +#line 1715 "query_y.c" /* yacc.c:1652 */ break; case 31: #line 267 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_SUB, (yyvsp[0].n)); } -#line 1717 "query_y.c" /* yacc.c:1652 */ +#line 1721 "query_y.c" /* yacc.c:1652 */ break; case 32: #line 268 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_MUL, (yyvsp[0].n)); } -#line 1723 "query_y.c" /* yacc.c:1652 */ +#line 1727 "query_y.c" /* yacc.c:1652 */ break; case 33: #line 269 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_DIV, (yyvsp[0].n)); } -#line 1729 "query_y.c" /* yacc.c:1652 */ +#line 1733 "query_y.c" /* yacc.c:1652 */ break; case 34: #line 270 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_MATCH, make_regex_free((yyvsp[0].s))); } -#line 1735 "query_y.c" /* yacc.c:1652 */ +#line 1739 "query_y.c" /* yacc.c:1652 */ break; case 35: #line 271 "query_y.y" /* yacc.c:1652 */ { BINOP((yyval.n), (yyvsp[-2].n), PCBQ_OP_MATCH, make_regex_free((yyvsp[0].s))); } -#line 1741 "query_y.c" /* yacc.c:1652 */ +#line 1745 "query_y.c" /* yacc.c:1652 */ break; case 36: #line 272 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 1747 "query_y.c" /* yacc.c:1652 */ +#line 1751 "query_y.c" /* yacc.c:1652 */ break; case 37: #line 273 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 1753 "query_y.c" /* yacc.c:1652 */ +#line 1757 "query_y.c" /* yacc.c:1652 */ break; case 38: #line 274 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 1759 "query_y.c" /* yacc.c:1652 */ +#line 1763 "query_y.c" /* yacc.c:1652 */ break; case 39: @@ -1769,109 +1773,121 @@ for(n = (yyvsp[0].n); n != NULL; n = n->next) n->parent = (yyval.n); } -#line 1773 "query_y.c" /* yacc.c:1652 */ +#line 1777 "query_y.c" /* yacc.c:1652 */ break; case 40: #line 287 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_COORD); UNIT_CONV((yyval.n)->data.crd, 0, (yyvsp[-1].c), (yyvsp[0].u)); } -#line 1779 "query_y.c" /* yacc.c:1652 */ +#line 1783 "query_y.c" /* yacc.c:1652 */ break; case 41: #line 288 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_DOUBLE); UNIT_CONV((yyval.n)->data.dbl, 0, (yyvsp[-1].d), (yyvsp[0].u)); } -#line 1785 "query_y.c" /* yacc.c:1652 */ +#line 1789 "query_y.c" /* yacc.c:1652 */ break; case 42: #line 289 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_COORD); UNIT_CONV((yyval.n)->data.crd, 1, (yyvsp[-1].c), (yyvsp[0].u)); } -#line 1791 "query_y.c" /* yacc.c:1652 */ +#line 1795 "query_y.c" /* yacc.c:1652 */ break; case 43: #line 290 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_DOUBLE); UNIT_CONV((yyval.n)->data.dbl, 1, (yyvsp[-1].d), (yyvsp[0].u)); } -#line 1797 "query_y.c" /* yacc.c:1652 */ +#line 1801 "query_y.c" /* yacc.c:1652 */ break; case 44: #line 294 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_STRING); (yyval.n)->data.str = (yyvsp[0].s); } -#line 1803 "query_y.c" /* yacc.c:1652 */ +#line 1807 "query_y.c" /* yacc.c:1652 */ break; case 45: #line 298 "query_y.y" /* yacc.c:1652 */ { (yyval.u) = NULL; } -#line 1809 "query_y.c" /* yacc.c:1652 */ +#line 1813 "query_y.c" /* yacc.c:1652 */ break; case 46: #line 299 "query_y.y" /* yacc.c:1652 */ { (yyval.u) = (yyvsp[0].u); } -#line 1815 "query_y.c" /* yacc.c:1652 */ +#line 1819 "query_y.c" /* yacc.c:1652 */ break; case 47: #line 303 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = (yyvsp[0].s); (yyval.n)->precomp.fld = query_fields_sphash((yyvsp[0].s)); } -#line 1821 "query_y.c" /* yacc.c:1652 */ +#line 1825 "query_y.c" /* yacc.c:1652 */ break; case 48: #line 304 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = (yyvsp[-2].s); (yyval.n)->precomp.fld = query_fields_sphash((yyvsp[-2].s)); (yyval.n)->next = (yyvsp[0].n); } -#line 1827 "query_y.c" /* yacc.c:1652 */ +#line 1831 "query_y.c" /* yacc.c:1652 */ break; case 49: #line 305 "query_y.y" /* yacc.c:1652 */ - { (yyval.n) = (yyvsp[0].n); /* just ignore .p. */ } -#line 1833 "query_y.c" /* yacc.c:1652 */ + { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_CONST); (yyval.n)->precomp.iconst =(yyvsp[-1].c); } +#line 1837 "query_y.c" /* yacc.c:1652 */ break; case 50: #line 306 "query_y.y" /* yacc.c:1652 */ - { (yyval.n) = make_flag_free((yyvsp[0].s)); } -#line 1839 "query_y.c" /* yacc.c:1652 */ + { (yyval.n) = pcb_qry_n_alloc(PCBQ_DATA_CONST); (yyval.n)->precomp.iconst = (yyvsp[-3].c); (yyval.n)->next = (yyvsp[0].n); } +#line 1843 "query_y.c" /* yacc.c:1652 */ break; case 51: #line 307 "query_y.y" /* yacc.c:1652 */ - { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = rnd_strdup("a"); (yyval.n)->precomp.fld = query_fields_sphash("a"); (yyval.n)->next = (yyvsp[0].n); } -#line 1845 "query_y.c" /* yacc.c:1652 */ + { (yyval.n) = (yyvsp[0].n); /* just ignore .p. */ } +#line 1849 "query_y.c" /* yacc.c:1652 */ break; case 52: -#line 311 "query_y.y" /* yacc.c:1652 */ - { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = (yyvsp[0].s); } -#line 1851 "query_y.c" /* yacc.c:1652 */ +#line 308 "query_y.y" /* yacc.c:1652 */ + { (yyval.n) = make_flag_free((yyvsp[0].s)); } +#line 1855 "query_y.c" /* yacc.c:1652 */ break; case 53: -#line 312 "query_y.y" /* yacc.c:1652 */ - { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = attrib_prepend_free((char *)(yyvsp[0].n)->data.str, (yyvsp[-2].s), '.'); } -#line 1857 "query_y.c" /* yacc.c:1652 */ +#line 309 "query_y.y" /* yacc.c:1652 */ + { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = rnd_strdup("a"); (yyval.n)->precomp.fld = query_fields_sphash("a"); (yyval.n)->next = (yyvsp[0].n); } +#line 1861 "query_y.c" /* yacc.c:1652 */ break; case 54: #line 313 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = (yyvsp[0].s); } -#line 1863 "query_y.c" /* yacc.c:1652 */ +#line 1867 "query_y.c" /* yacc.c:1652 */ break; case 55: -#line 318 "query_y.y" /* yacc.c:1652 */ +#line 314 "query_y.y" /* yacc.c:1652 */ + { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = attrib_prepend_free((char *)(yyvsp[0].n)->data.str, (yyvsp[-2].s), '.'); } +#line 1873 "query_y.c" /* yacc.c:1652 */ + break; + + case 56: +#line 315 "query_y.y" /* yacc.c:1652 */ + { (yyval.n) = pcb_qry_n_alloc(PCBQ_FIELD); (yyval.n)->data.str = (yyvsp[0].s); } +#line 1879 "query_y.c" /* yacc.c:1652 */ + break; + + case 57: +#line 320 "query_y.y" /* yacc.c:1652 */ { iter_active_ctx = calloc(sizeof(vti0_t), 1); } -#line 1871 "query_y.c" /* yacc.c:1652 */ +#line 1887 "query_y.c" /* yacc.c:1652 */ break; - case 56: -#line 322 "query_y.y" /* yacc.c:1652 */ + case 58: +#line 324 "query_y.y" /* yacc.c:1652 */ { pcb_qry_node_t *nd; (yyval.n) = pcb_qry_n_alloc(PCBQ_LET); @@ -1883,19 +1899,19 @@ pcb_qry_n_insert((yyval.n), nd); free((yyvsp[-1].s)); } -#line 1887 "query_y.c" /* yacc.c:1652 */ +#line 1903 "query_y.c" /* yacc.c:1652 */ break; - case 57: -#line 337 "query_y.y" /* yacc.c:1652 */ + case 59: +#line 339 "query_y.y" /* yacc.c:1652 */ { iter_active_ctx = calloc(sizeof(vti0_t), 1); } -#line 1895 "query_y.c" /* yacc.c:1652 */ +#line 1911 "query_y.c" /* yacc.c:1652 */ break; - case 58: -#line 341 "query_y.y" /* yacc.c:1652 */ + case 60: +#line 343 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_ASSERT); (yyval.n)->precomp.it_active = iter_active_ctx; @@ -1902,19 +1918,19 @@ iter_active_ctx = NULL; pcb_qry_n_insert((yyval.n), (yyvsp[0].n)); } -#line 1906 "query_y.c" /* yacc.c:1652 */ +#line 1922 "query_y.c" /* yacc.c:1652 */ break; - case 59: -#line 351 "query_y.y" /* yacc.c:1652 */ + case 61: +#line 353 "query_y.y" /* yacc.c:1652 */ { iter_active_ctx = calloc(sizeof(vti0_t), 1); } -#line 1914 "query_y.c" /* yacc.c:1652 */ +#line 1930 "query_y.c" /* yacc.c:1652 */ break; - case 60: -#line 355 "query_y.y" /* yacc.c:1652 */ + case 62: +#line 357 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_RETURN); (yyval.n)->precomp.it_active = iter_active_ctx; @@ -1921,35 +1937,35 @@ iter_active_ctx = NULL; pcb_qry_n_insert((yyval.n), (yyvsp[0].n)); } -#line 1925 "query_y.c" /* yacc.c:1652 */ +#line 1941 "query_y.c" /* yacc.c:1652 */ break; - case 61: -#line 364 "query_y.y" /* yacc.c:1652 */ + case 63: +#line 366 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_VAR); (yyval.n)->data.crd = pcb_qry_iter_var(iter_ctx, (yyvsp[0].s), 1); if (iter_active_ctx != NULL) vti0_set(iter_active_ctx, (yyval.n)->data.crd, 1); free((yyvsp[0].s)); } -#line 1931 "query_y.c" /* yacc.c:1652 */ +#line 1947 "query_y.c" /* yacc.c:1652 */ break; - case 62: -#line 365 "query_y.y" /* yacc.c:1652 */ + case 64: +#line 367 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_LISTVAR); (yyval.n)->data.str = rnd_strdup("@"); /* delibertely not setting iter_active, list() protects against turning it into an iterator */ } -#line 1937 "query_y.c" /* yacc.c:1652 */ +#line 1953 "query_y.c" /* yacc.c:1652 */ break; - case 63: -#line 366 "query_y.y" /* yacc.c:1652 */ + case 65: +#line 368 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_LISTVAR); (yyval.n)->data.str = (yyvsp[-1].s); /* delibertely not setting iter_active, list() protects against turning it into an iterator */ } -#line 1943 "query_y.c" /* yacc.c:1652 */ +#line 1959 "query_y.c" /* yacc.c:1652 */ break; - case 64: -#line 367 "query_y.y" /* yacc.c:1652 */ + case 66: +#line 369 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_VAR); (yyval.n)->data.crd = pcb_qry_iter_var(iter_ctx, "@", 1); if (iter_active_ctx != NULL) vti0_set(iter_active_ctx, (yyval.n)->data.crd, 1); } -#line 1949 "query_y.c" /* yacc.c:1652 */ +#line 1965 "query_y.c" /* yacc.c:1652 */ break; - case 65: -#line 373 "query_y.y" /* yacc.c:1652 */ + case 67: +#line 375 "query_y.y" /* yacc.c:1652 */ { pcb_qry_node_t *fname, *nname; @@ -1966,23 +1982,23 @@ (yyval.n)->data.children = fname; (yyval.n)->data.children->next = nname; } -#line 1970 "query_y.c" /* yacc.c:1652 */ +#line 1986 "query_y.c" /* yacc.c:1652 */ break; - case 66: -#line 392 "query_y.y" /* yacc.c:1652 */ + case 68: +#line 394 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_FCALL); (yyval.n)->data.children = (yyvsp[-3].n); (yyval.n)->data.children->next = (yyvsp[-1].n); (yyvsp[-3].n)->parent = (yyvsp[-1].n)->parent = (yyval.n); } -#line 1976 "query_y.c" /* yacc.c:1652 */ +#line 1992 "query_y.c" /* yacc.c:1652 */ break; - case 67: -#line 393 "query_y.y" /* yacc.c:1652 */ + case 69: +#line 395 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_FCALL); (yyval.n)->data.children = (yyvsp[-2].n); (yyvsp[-2].n)->parent = (yyval.n); } -#line 1982 "query_y.c" /* yacc.c:1652 */ +#line 1998 "query_y.c" /* yacc.c:1652 */ break; - case 68: -#line 397 "query_y.y" /* yacc.c:1652 */ + case 70: +#line 399 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_FNAME); (yyval.n)->precomp.fnc.bui = pcb_qry_fnc_lookup((yyvsp[0].s)); @@ -1994,71 +2010,71 @@ else (yyval.n)->data.str = (yyvsp[0].s); /* user function: save the name */ } -#line 1998 "query_y.c" /* yacc.c:1652 */ +#line 2014 "query_y.c" /* yacc.c:1652 */ break; - case 69: -#line 412 "query_y.y" /* yacc.c:1652 */ + case 71: +#line 414 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 2004 "query_y.c" /* yacc.c:1652 */ +#line 2020 "query_y.c" /* yacc.c:1652 */ break; - case 70: -#line 413 "query_y.y" /* yacc.c:1652 */ + case 72: +#line 415 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[-2].n); (yyval.n)->next = (yyvsp[0].n); } -#line 2010 "query_y.c" /* yacc.c:1652 */ +#line 2026 "query_y.c" /* yacc.c:1652 */ break; - case 71: -#line 418 "query_y.y" /* yacc.c:1652 */ + case 73: +#line 420 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_ARG); (yyval.n)->data.crd = pcb_qry_iter_var(iter_ctx, (yyvsp[0].s), 1); } -#line 2019 "query_y.c" /* yacc.c:1652 */ +#line 2035 "query_y.c" /* yacc.c:1652 */ break; - case 72: -#line 425 "query_y.y" /* yacc.c:1652 */ + case 74: +#line 427 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[0].n); } -#line 2025 "query_y.c" /* yacc.c:1652 */ +#line 2041 "query_y.c" /* yacc.c:1652 */ break; - case 73: -#line 426 "query_y.y" /* yacc.c:1652 */ + case 75: +#line 428 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[-2].n); (yyval.n)->next = (yyvsp[0].n); } -#line 2031 "query_y.c" /* yacc.c:1652 */ +#line 2047 "query_y.c" /* yacc.c:1652 */ break; - case 74: -#line 430 "query_y.y" /* yacc.c:1652 */ + case 76: +#line 432 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_FNAME); (yyval.n)->data.str = (yyvsp[0].s); } -#line 2040 "query_y.c" /* yacc.c:1652 */ +#line 2056 "query_y.c" /* yacc.c:1652 */ break; - case 75: -#line 437 "query_y.y" /* yacc.c:1652 */ + case 77: +#line 439 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = (yyvsp[-1].n); } -#line 2046 "query_y.c" /* yacc.c:1652 */ +#line 2062 "query_y.c" /* yacc.c:1652 */ break; - case 76: -#line 438 "query_y.y" /* yacc.c:1652 */ + case 78: +#line 440 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = NULL; } -#line 2052 "query_y.c" /* yacc.c:1652 */ +#line 2068 "query_y.c" /* yacc.c:1652 */ break; - case 77: -#line 443 "query_y.y" /* yacc.c:1652 */ + case 79: +#line 445 "query_y.y" /* yacc.c:1652 */ { iter_ctx = pcb_qry_iter_alloc(); } -#line 2058 "query_y.c" /* yacc.c:1652 */ +#line 2074 "query_y.c" /* yacc.c:1652 */ break; - case 78: -#line 444 "query_y.y" /* yacc.c:1652 */ + case 80: +#line 446 "query_y.y" /* yacc.c:1652 */ { pcb_qry_node_t *nd; @@ -2077,17 +2093,17 @@ user_funcs = htsp_alloc(strhash, strkeyeq); htsp_set(user_funcs, (char *)(yyvsp[-2].n)->data.str, (yyval.n)); } -#line 2081 "query_y.c" /* yacc.c:1652 */ +#line 2097 "query_y.c" /* yacc.c:1652 */ break; - case 79: -#line 464 "query_y.y" /* yacc.c:1652 */ + case 81: +#line 466 "query_y.y" /* yacc.c:1652 */ { (yyval.n) = pcb_qry_n_alloc(PCBQ_RNAME); (yyval.n)->data.str = (const char *)rnd_strdup(""); } -#line 2087 "query_y.c" /* yacc.c:1652 */ +#line 2103 "query_y.c" /* yacc.c:1652 */ break; - case 80: -#line 465 "query_y.y" /* yacc.c:1652 */ + case 82: +#line 467 "query_y.y" /* yacc.c:1652 */ { char *old = (char *)(yyvsp[0].n)->data.str, *sep = ((*old != '\0') ? " " : ""); (yyvsp[0].n)->data.str = rnd_concat((yyvsp[-1].s), sep, old, NULL); @@ -2095,11 +2111,11 @@ free((yyvsp[-1].s)); (yyval.n) = (yyvsp[0].n); } -#line 2099 "query_y.c" /* yacc.c:1652 */ +#line 2115 "query_y.c" /* yacc.c:1652 */ break; -#line 2103 "query_y.c" /* yacc.c:1652 */ +#line 2119 "query_y.c" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires Index: trunk/src_plugins/query/query_y.y =================================================================== --- trunk/src_plugins/query/query_y.y (revision 35678) +++ trunk/src_plugins/query/query_y.y (revision 35679) @@ -302,6 +302,8 @@ fields: T_STR { $$ = pcb_qry_n_alloc(PCBQ_FIELD); $$->data.str = $1; $$->precomp.fld = query_fields_sphash($1); } | T_STR '.' fields { $$ = pcb_qry_n_alloc(PCBQ_FIELD); $$->data.str = $1; $$->precomp.fld = query_fields_sphash($1); $$->next = $3; } + | '(' T_INT ')' { $$ = pcb_qry_n_alloc(PCBQ_DATA_CONST); $$->precomp.iconst =$2; } + | '(' T_INT ')' '.' fields { $$ = pcb_qry_n_alloc(PCBQ_DATA_CONST); $$->precomp.iconst = $2; $$->next = $5; } | T_FLD_P fields { $$ = $2; /* just ignore .p. */ } | T_FLD_P T_FLD_FLAG T_STR { $$ = make_flag_free($3); } | T_FLD_A attribs { $$ = pcb_qry_n_alloc(PCBQ_FIELD); $$->data.str = rnd_strdup("a"); $$->precomp.fld = query_fields_sphash("a"); $$->next = $2; }