disable yacc debug

pull/17/head
Todd Persen 2013-10-08 16:06:09 -04:00
parent c055531ef7
commit f5f83e7bf2
2 changed files with 140 additions and 195 deletions

View File

@ -50,6 +50,7 @@
%type <string> BOOL_OPERATION
%type <condition> CONDITION
%type <bool_expression> BOOL_EXPRESSION
%type <character> ARITHMETIC_OPERATOR
%type <value_array> VALUES
%type <v> VALUE
%type <v> FUNCTION_CALL
@ -212,42 +213,22 @@ EXPRESSION:
$$ = $2;
}
|
EXPRESSION '+' EXPRESSION
EXPRESSION ARITHMETIC_OPERATOR EXPRESSION
{
$$ = malloc(sizeof(expression));
printf("operation: %c\n", $2);
$$->left = $1;
$$->op = $2;
$$->right = $3;
}
|
EXPRESSION '-' EXPRESSION
{
$$ = malloc(sizeof(expression));
printf("operation: %c\n", $2);
$$->left = $1;
$$->op = $2;
$$->right = $3;
}
|
EXPRESSION '*' EXPRESSION
{
$$ = malloc(sizeof(expression));
printf("operation: %c\n", $2);
$$->left = $1;
$$->op = $2;
$$->right = $3;
}
|
EXPRESSION '/' EXPRESSION
{
$$ = malloc(sizeof(expression));
printf("operation: %c\n", $2);
$$->left = $1;
$$->op = $2;
$$->right = $3;
}
ARITHMETIC_OPERATOR:
'+'
|
'-'
|
'*'
|
'/'
BOOL_EXPRESSION:
EXPRESSION
@ -335,7 +316,7 @@ parse_query(char *const query_s)
{
query q;
q.error = NULL;
yydebug = 1;
/* yydebug = 1; */
void *scanner;
yylex_init(&scanner);
void *buffer = yy_scan_string(query_s, scanner);

View File

@ -399,16 +399,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 11
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 96
#define YYLAST 91
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 31
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 14
#define YYNNTS 15
/* YYNRULES -- Number of rules. */
#define YYNRULES 40
#define YYNRULES 41
/* YYNSTATES -- Number of states. */
#define YYNSTATES 69
#define YYNSTATES 67
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@ -456,11 +456,11 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 73, 73, 82, 92, 98, 104, 109, 117, 127,
132, 136, 138, 144, 149, 154, 163, 171, 178, 185,
192, 199, 202, 210, 215, 224, 233, 242, 253, 261,
269, 284, 293, 298, 307, 317, 319, 321, 323, 325,
327
0, 74, 74, 83, 93, 99, 105, 110, 118, 128,
133, 137, 139, 145, 150, 155, 164, 172, 179, 186,
193, 200, 203, 211, 216, 226, 228, 230, 232, 235,
243, 251, 266, 275, 280, 289, 299, 301, 303, 305,
307, 309
};
#endif
@ -476,7 +476,7 @@ static const char *const yytname[] =
"OPERATION_GE", "'+'", "'-'", "'*'", "'/'", "';'", "','", "'('", "')'",
"$accept", "QUERY", "LIMIT", "VALUES", "GROUP_BY_CLAUSE", "COLUMN_NAMES",
"FROM_CLAUSE", "WHERE_CLAUSE", "FUNCTION_CALL", "VALUE", "EXPRESSION",
"BOOL_EXPRESSION", "CONDITION", "BOOL_OPERATION", YY_NULL
"ARITHMETIC_OPERATOR", "BOOL_EXPRESSION", "CONDITION", "BOOL_OPERATION", YY_NULL
};
#endif
@ -506,13 +506,13 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int8 yypact[] =
{
-1, 46, 28, -26, -26, 38, -26, 41, 66, -26,
-26, -26, -3, 46, 46, 61, -26, 58, -26, -26,
1, 46, 68, 67, -26, 1, -26, 59, -26, 19,
41, 31, 31, 29, 45, 73, -26, -26, -26, -26,
-26, -26, 4, 4, 4, 4, 4, 1, 1, 78,
79, 64, 65, -26, -26, -26, 4, 18, 18, -26,
-26, 39, 77, -26, -26, -26, -26, -26, -20
30, 29, 17, -26, -26, 18, -26, 21, 46, -26,
-26, -26, -7, 29, 29, 5, -26, -14, -26, -26,
19, 29, 48, 60, -26, 19, -26, 53, -26, 27,
21, 37, 37, 39, 4, 54, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, 26, 26, 19, 19,
73, 74, 59, 61, -26, -26, -26, 26, 57, 57,
71, -26, -26, -26, -26, -26, -17
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@ -522,25 +522,25 @@ static const yytype_uint8 yydefact[] =
{
0, 0, 0, 17, 18, 20, 19, 11, 0, 21,
7, 1, 0, 0, 0, 10, 15, 0, 8, 12,
0, 0, 14, 10, 16, 0, 22, 28, 31, 13,
9, 6, 6, 28, 0, 0, 35, 36, 37, 38,
40, 39, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 23, 32, 30, 0, 24, 25, 26,
27, 29, 34, 33, 4, 5, 2, 3, 0
0, 0, 14, 10, 16, 0, 22, 29, 32, 13,
9, 6, 6, 29, 0, 0, 36, 37, 38, 39,
41, 40, 25, 26, 27, 28, 0, 0, 0, 0,
0, 0, 0, 0, 23, 33, 31, 0, 24, 30,
35, 34, 4, 5, 2, 3, 0
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
-26, -26, 62, 20, 72, -26, -26, 74, -26, 24,
-25, -26, -24, -26
-26, -26, 58, -10, 66, -26, -26, 69, -26, 14,
-25, -26, -26, -24, -26
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
-1, 2, 51, 7, 22, 8, 15, 23, 9, 26,
27, 28, 29, 46
-1, 2, 52, 7, 22, 8, 15, 23, 9, 26,
27, 46, 28, 29, 47
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@ -548,30 +548,30 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
33, 34, 1, 42, 43, 44, 45, 3, 4, 5,
53, 3, 4, 5, 3, 4, 5, 57, 58, 59,
60, 61, 6, 62, 63, 10, 6, 16, 11, 6,
25, 68, 17, 56, 47, 48, 10, 18, 19, 49,
50, 30, 35, 44, 45, 10, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 3, 4, 5, 53,
47, 48, 42, 43, 44, 45, 20, 12, 21, 13,
14, 6, 35, 20, 21, 54, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 13, 55, 24, 64,
65, 66, 67, 48, 52, 32, 31
33, 34, 17, 3, 4, 5, 42, 43, 44, 45,
20, 30, 21, 54, 13, 10, 24, 11, 6, 48,
49, 58, 59, 16, 60, 61, 10, 18, 19, 3,
4, 5, 66, 1, 55, 10, 3, 4, 5, 3,
4, 5, 48, 49, 6, 50, 51, 12, 25, 13,
14, 6, 35, 20, 6, 57, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 35, 21, 56, 54,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
42, 43, 44, 45, 62, 63, 64, 49, 65, 32,
53, 31
};
static const yytype_uint8 yycheck[] =
{
25, 25, 3, 23, 24, 25, 26, 10, 11, 12,
30, 10, 11, 12, 10, 11, 12, 42, 43, 44,
45, 46, 25, 47, 48, 1, 25, 30, 0, 25,
29, 56, 12, 29, 15, 16, 12, 13, 14, 8,
9, 21, 13, 25, 26, 21, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 10, 11, 12, 30,
15, 16, 23, 24, 25, 26, 5, 29, 7, 28,
4, 25, 13, 5, 7, 30, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 28, 14, 30, 11,
11, 27, 27, 16, 32, 23, 22
25, 25, 12, 10, 11, 12, 23, 24, 25, 26,
5, 21, 7, 30, 28, 1, 30, 0, 25, 15,
16, 46, 47, 30, 48, 49, 12, 13, 14, 10,
11, 12, 57, 3, 30, 21, 10, 11, 12, 10,
11, 12, 15, 16, 25, 8, 9, 29, 29, 28,
4, 25, 13, 5, 25, 29, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 13, 7, 14, 30,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
23, 24, 25, 26, 11, 11, 27, 16, 27, 23,
32, 22
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@ -580,11 +580,11 @@ static const yytype_uint8 yystos[] =
{
0, 3, 32, 10, 11, 12, 25, 34, 36, 39,
40, 0, 29, 28, 4, 37, 30, 34, 40, 40,
5, 7, 35, 38, 30, 29, 40, 41, 42, 43,
34, 38, 35, 41, 43, 13, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 44, 15, 16, 8,
9, 33, 33, 30, 30, 14, 29, 41, 41, 41,
41, 41, 43, 43, 11, 11, 27, 27, 41
5, 7, 35, 38, 30, 29, 40, 41, 43, 44,
34, 38, 35, 41, 44, 13, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 42, 45, 15, 16,
8, 9, 33, 33, 30, 30, 14, 29, 41, 41,
44, 44, 11, 11, 27, 27, 41
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@ -592,9 +592,9 @@ static const yytype_uint8 yyr1[] =
{
0, 31, 32, 32, 33, 33, 33, 34, 34, 35,
35, 36, 37, 38, 38, 39, 39, 40, 40, 40,
40, 40, 41, 41, 41, 41, 41, 41, 42, 42,
42, 43, 43, 43, 43, 44, 44, 44, 44, 44,
44
40, 40, 41, 41, 41, 42, 42, 42, 42, 43,
43, 43, 44, 44, 44, 44, 45, 45, 45, 45,
45, 45
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@ -602,9 +602,9 @@ static const yytype_uint8 yyr2[] =
{
0, 2, 7, 7, 2, 2, 0, 1, 3, 2,
0, 1, 2, 2, 0, 3, 4, 1, 1, 1,
1, 1, 1, 3, 3, 3, 3, 3, 1, 3,
3, 1, 3, 3, 3, 1, 1, 1, 1, 1,
1
1, 1, 1, 3, 3, 1, 1, 1, 1, 1,
3, 3, 1, 3, 3, 3, 1, 1, 1, 1,
1, 1
};
@ -1101,127 +1101,127 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
switch (yytype)
{
case 10: /* STRING_VALUE */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1107 "y.tab.c" /* yacc.c:1257 */
break;
case 11: /* INT_VALUE */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1113 "y.tab.c" /* yacc.c:1257 */
break;
case 12: /* NAME */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1119 "y.tab.c" /* yacc.c:1257 */
break;
case 13: /* REGEX_OP */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1125 "y.tab.c" /* yacc.c:1257 */
break;
case 14: /* REGEX_STRING */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1131 "y.tab.c" /* yacc.c:1257 */
break;
case 17: /* OPERATION_EQUAL */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1137 "y.tab.c" /* yacc.c:1257 */
break;
case 18: /* OPERATION_NE */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1143 "y.tab.c" /* yacc.c:1257 */
break;
case 19: /* OPERATION_GT */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1149 "y.tab.c" /* yacc.c:1257 */
break;
case 20: /* OPERATION_LT */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1155 "y.tab.c" /* yacc.c:1257 */
break;
case 21: /* OPERATION_LE */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1161 "y.tab.c" /* yacc.c:1257 */
break;
case 22: /* OPERATION_GE */
#line 66 "query.yacc" /* yacc.c:1257 */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1167 "y.tab.c" /* yacc.c:1257 */
break;
case 34: /* VALUES */
#line 68 "query.yacc" /* yacc.c:1257 */
#line 69 "query.yacc" /* yacc.c:1257 */
{ if (((*yyvaluep).value_array)) free_value_array(((*yyvaluep).value_array)); }
#line 1173 "y.tab.c" /* yacc.c:1257 */
break;
case 35: /* GROUP_BY_CLAUSE */
#line 68 "query.yacc" /* yacc.c:1257 */
#line 69 "query.yacc" /* yacc.c:1257 */
{ if (((*yyvaluep).value_array)) free_value_array(((*yyvaluep).value_array)); }
#line 1179 "y.tab.c" /* yacc.c:1257 */
break;
case 36: /* COLUMN_NAMES */
#line 68 "query.yacc" /* yacc.c:1257 */
#line 69 "query.yacc" /* yacc.c:1257 */
{ if (((*yyvaluep).value_array)) free_value_array(((*yyvaluep).value_array)); }
#line 1185 "y.tab.c" /* yacc.c:1257 */
break;
case 37: /* FROM_CLAUSE */
#line 64 "query.yacc" /* yacc.c:1257 */
#line 65 "query.yacc" /* yacc.c:1257 */
{ free_value(((*yyvaluep).v)); }
#line 1191 "y.tab.c" /* yacc.c:1257 */
break;
case 38: /* WHERE_CLAUSE */
#line 65 "query.yacc" /* yacc.c:1257 */
#line 66 "query.yacc" /* yacc.c:1257 */
{ if (((*yyvaluep).condition)) free_condition(((*yyvaluep).condition)); }
#line 1197 "y.tab.c" /* yacc.c:1257 */
break;
case 39: /* FUNCTION_CALL */
#line 64 "query.yacc" /* yacc.c:1257 */
#line 65 "query.yacc" /* yacc.c:1257 */
{ free_value(((*yyvaluep).v)); }
#line 1203 "y.tab.c" /* yacc.c:1257 */
break;
case 40: /* VALUE */
#line 64 "query.yacc" /* yacc.c:1257 */
#line 65 "query.yacc" /* yacc.c:1257 */
{ free_value(((*yyvaluep).v)); }
#line 1209 "y.tab.c" /* yacc.c:1257 */
break;
case 41: /* EXPRESSION */
#line 67 "query.yacc" /* yacc.c:1257 */
#line 68 "query.yacc" /* yacc.c:1257 */
{ free_expression(((*yyvaluep).expression)); }
#line 1215 "y.tab.c" /* yacc.c:1257 */
break;
case 43: /* CONDITION */
#line 65 "query.yacc" /* yacc.c:1257 */
case 44: /* CONDITION */
#line 66 "query.yacc" /* yacc.c:1257 */
{ if (((*yyvaluep).condition)) free_condition(((*yyvaluep).condition)); }
#line 1221 "y.tab.c" /* yacc.c:1257 */
break;
case 44: /* BOOL_OPERATION */
#line 66 "query.yacc" /* yacc.c:1257 */
case 45: /* BOOL_OPERATION */
#line 67 "query.yacc" /* yacc.c:1257 */
{ free(((*yyvaluep).string)); }
#line 1227 "y.tab.c" /* yacc.c:1257 */
break;
@ -1515,7 +1515,7 @@ yyreduce:
switch (yyn)
{
case 2:
#line 74 "query.yacc" /* yacc.c:1661 */
#line 75 "query.yacc" /* yacc.c:1661 */
{
q->c = (yyvsp[-5].value_array);
q->f = (yyvsp[-4].v);
@ -1527,7 +1527,7 @@ yyreduce:
break;
case 3:
#line 83 "query.yacc" /* yacc.c:1661 */
#line 84 "query.yacc" /* yacc.c:1661 */
{
q->c = (yyvsp[-5].value_array);
q->f = (yyvsp[-4].v);
@ -1539,7 +1539,7 @@ yyreduce:
break;
case 4:
#line 93 "query.yacc" /* yacc.c:1661 */
#line 94 "query.yacc" /* yacc.c:1661 */
{
(yyval.integer) = atoi((yyvsp[0].string));
free((yyvsp[0].string));
@ -1548,7 +1548,7 @@ yyreduce:
break;
case 5:
#line 99 "query.yacc" /* yacc.c:1661 */
#line 100 "query.yacc" /* yacc.c:1661 */
{
(yyval.integer) = -atoi((yyvsp[0].string));
free((yyvsp[0].string));
@ -1557,7 +1557,7 @@ yyreduce:
break;
case 6:
#line 104 "query.yacc" /* yacc.c:1661 */
#line 105 "query.yacc" /* yacc.c:1661 */
{
(yyval.integer) = 0;
}
@ -1565,7 +1565,7 @@ yyreduce:
break;
case 7:
#line 110 "query.yacc" /* yacc.c:1661 */
#line 111 "query.yacc" /* yacc.c:1661 */
{
(yyval.value_array) = malloc(sizeof(value_array));
(yyval.value_array)->size = 1;
@ -1576,7 +1576,7 @@ yyreduce:
break;
case 8:
#line 118 "query.yacc" /* yacc.c:1661 */
#line 119 "query.yacc" /* yacc.c:1661 */
{
size_t new_size = (yyvsp[-2].value_array)->size + 1;
(yyvsp[-2].value_array)->elems = realloc((yyval.value_array)->elems, sizeof(value*) * new_size);
@ -1588,7 +1588,7 @@ yyreduce:
break;
case 9:
#line 128 "query.yacc" /* yacc.c:1661 */
#line 129 "query.yacc" /* yacc.c:1661 */
{
(yyval.value_array) = (yyvsp[0].value_array);
}
@ -1596,7 +1596,7 @@ yyreduce:
break;
case 10:
#line 132 "query.yacc" /* yacc.c:1661 */
#line 133 "query.yacc" /* yacc.c:1661 */
{
(yyval.value_array) = NULL;
}
@ -1604,7 +1604,7 @@ yyreduce:
break;
case 12:
#line 139 "query.yacc" /* yacc.c:1661 */
#line 140 "query.yacc" /* yacc.c:1661 */
{
(yyval.v) = (yyvsp[0].v);
}
@ -1612,7 +1612,7 @@ yyreduce:
break;
case 13:
#line 145 "query.yacc" /* yacc.c:1661 */
#line 146 "query.yacc" /* yacc.c:1661 */
{
(yyval.condition) = (yyvsp[0].condition);
}
@ -1620,7 +1620,7 @@ yyreduce:
break;
case 14:
#line 149 "query.yacc" /* yacc.c:1661 */
#line 150 "query.yacc" /* yacc.c:1661 */
{
(yyval.condition) = NULL;
}
@ -1628,7 +1628,7 @@ yyreduce:
break;
case 15:
#line 155 "query.yacc" /* yacc.c:1661 */
#line 156 "query.yacc" /* yacc.c:1661 */
{
(yyval.v) = malloc(sizeof(value));
(yyval.v)->name = (yyvsp[-2].string);
@ -1640,7 +1640,7 @@ yyreduce:
break;
case 16:
#line 164 "query.yacc" /* yacc.c:1661 */
#line 165 "query.yacc" /* yacc.c:1661 */
{
(yyval.v) = malloc(sizeof(value));
(yyval.v)->name = (yyvsp[-3].string);
@ -1650,7 +1650,7 @@ yyreduce:
break;
case 17:
#line 172 "query.yacc" /* yacc.c:1661 */
#line 173 "query.yacc" /* yacc.c:1661 */
{
(yyval.v) = malloc(sizeof(value));
(yyval.v)->name = (yyvsp[0].string);
@ -1660,7 +1660,7 @@ yyreduce:
break;
case 18:
#line 179 "query.yacc" /* yacc.c:1661 */
#line 180 "query.yacc" /* yacc.c:1661 */
{
(yyval.v) = malloc(sizeof(value));
(yyval.v)->name = (yyvsp[0].string);
@ -1670,7 +1670,7 @@ yyreduce:
break;
case 19:
#line 186 "query.yacc" /* yacc.c:1661 */
#line 187 "query.yacc" /* yacc.c:1661 */
{
(yyval.v) = malloc(sizeof(value));
(yyval.v)->name = strdup("*");
@ -1680,7 +1680,7 @@ yyreduce:
break;
case 20:
#line 193 "query.yacc" /* yacc.c:1661 */
#line 194 "query.yacc" /* yacc.c:1661 */
{
(yyval.v) = malloc(sizeof(value));
(yyval.v)->name = (yyvsp[0].string);
@ -1690,7 +1690,7 @@ yyreduce:
break;
case 22:
#line 203 "query.yacc" /* yacc.c:1661 */
#line 204 "query.yacc" /* yacc.c:1661 */
{
(yyval.expression) = malloc(sizeof(expression));
(yyval.expression)->left = (yyvsp[0].v);
@ -1701,7 +1701,7 @@ yyreduce:
break;
case 23:
#line 211 "query.yacc" /* yacc.c:1661 */
#line 212 "query.yacc" /* yacc.c:1661 */
{
(yyval.expression) = (yyvsp[-1].expression);
}
@ -1709,7 +1709,7 @@ yyreduce:
break;
case 24:
#line 216 "query.yacc" /* yacc.c:1661 */
#line 217 "query.yacc" /* yacc.c:1661 */
{
(yyval.expression) = malloc(sizeof(expression));
printf("operation: %c\n", (yyvsp[-1].character));
@ -1720,66 +1720,30 @@ yyreduce:
#line 1721 "y.tab.c" /* yacc.c:1661 */
break;
case 25:
#line 225 "query.yacc" /* yacc.c:1661 */
{
(yyval.expression) = malloc(sizeof(expression));
printf("operation: %c\n", (yyvsp[-1].character));
(yyval.expression)->left = (yyvsp[-2].expression);
(yyval.expression)->op = (yyvsp[-1].character);
(yyval.expression)->right = (yyvsp[0].expression);
}
#line 1733 "y.tab.c" /* yacc.c:1661 */
break;
case 26:
#line 234 "query.yacc" /* yacc.c:1661 */
{
(yyval.expression) = malloc(sizeof(expression));
printf("operation: %c\n", (yyvsp[-1].character));
(yyval.expression)->left = (yyvsp[-2].expression);
(yyval.expression)->op = (yyvsp[-1].character);
(yyval.expression)->right = (yyvsp[0].expression);
}
#line 1745 "y.tab.c" /* yacc.c:1661 */
break;
case 27:
#line 243 "query.yacc" /* yacc.c:1661 */
{
(yyval.expression) = malloc(sizeof(expression));
printf("operation: %c\n", (yyvsp[-1].character));
(yyval.expression)->left = (yyvsp[-2].expression);
(yyval.expression)->op = (yyvsp[-1].character);
(yyval.expression)->right = (yyvsp[0].expression);
}
#line 1757 "y.tab.c" /* yacc.c:1661 */
break;
case 28:
#line 254 "query.yacc" /* yacc.c:1661 */
case 29:
#line 236 "query.yacc" /* yacc.c:1661 */
{
(yyval.bool_expression) = malloc(sizeof(bool_expression));
(yyval.bool_expression)->left = (yyvsp[0].expression);
(yyval.bool_expression)->op = NULL;
(yyval.bool_expression)->right = NULL;
}
#line 1768 "y.tab.c" /* yacc.c:1661 */
#line 1732 "y.tab.c" /* yacc.c:1661 */
break;
case 29:
#line 262 "query.yacc" /* yacc.c:1661 */
case 30:
#line 244 "query.yacc" /* yacc.c:1661 */
{
(yyval.bool_expression) = malloc(sizeof(bool_expression));
(yyval.bool_expression)->left = (yyvsp[-2].expression);
(yyval.bool_expression)->op = (yyvsp[-1].string);
(yyval.bool_expression)->right = (yyvsp[0].expression);
}
#line 1779 "y.tab.c" /* yacc.c:1661 */
#line 1743 "y.tab.c" /* yacc.c:1661 */
break;
case 30:
#line 270 "query.yacc" /* yacc.c:1661 */
case 31:
#line 252 "query.yacc" /* yacc.c:1661 */
{
(yyval.bool_expression) = malloc(sizeof(bool_expression));
(yyval.bool_expression)->left = (yyvsp[-2].expression);
@ -1792,11 +1756,11 @@ yyreduce:
(yyval.bool_expression)->right->op = '\0';
(yyval.bool_expression)->right->right = NULL;
}
#line 1796 "y.tab.c" /* yacc.c:1661 */
#line 1760 "y.tab.c" /* yacc.c:1661 */
break;
case 31:
#line 285 "query.yacc" /* yacc.c:1661 */
case 32:
#line 267 "query.yacc" /* yacc.c:1661 */
{
(yyval.condition) = malloc(sizeof(condition));
(yyval.condition)->is_bool_expression = TRUE;
@ -1804,19 +1768,19 @@ yyreduce:
(yyval.condition)->op = NULL;
(yyval.condition)->right = NULL;
}
#line 1808 "y.tab.c" /* yacc.c:1661 */
break;
case 32:
#line 294 "query.yacc" /* yacc.c:1661 */
{
(yyval.condition) = (yyvsp[-1].condition);
}
#line 1816 "y.tab.c" /* yacc.c:1661 */
#line 1772 "y.tab.c" /* yacc.c:1661 */
break;
case 33:
#line 299 "query.yacc" /* yacc.c:1661 */
#line 276 "query.yacc" /* yacc.c:1661 */
{
(yyval.condition) = (yyvsp[-1].condition);
}
#line 1780 "y.tab.c" /* yacc.c:1661 */
break;
case 34:
#line 281 "query.yacc" /* yacc.c:1661 */
{
(yyval.condition) = malloc(sizeof(condition));
(yyval.condition)->is_bool_expression = FALSE;
@ -1824,11 +1788,11 @@ yyreduce:
(yyval.condition)->op = "AND";
(yyval.condition)->right = (yyvsp[0].condition);
}
#line 1828 "y.tab.c" /* yacc.c:1661 */
#line 1792 "y.tab.c" /* yacc.c:1661 */
break;
case 34:
#line 308 "query.yacc" /* yacc.c:1661 */
case 35:
#line 290 "query.yacc" /* yacc.c:1661 */
{
(yyval.condition) = malloc(sizeof(condition));
(yyval.condition)->is_bool_expression = FALSE;
@ -1836,11 +1800,11 @@ yyreduce:
(yyval.condition)->op = "OR";
(yyval.condition)->right = (yyvsp[0].condition);
}
#line 1840 "y.tab.c" /* yacc.c:1661 */
#line 1804 "y.tab.c" /* yacc.c:1661 */
break;
#line 1844 "y.tab.c" /* yacc.c:1661 */
#line 1808 "y.tab.c" /* yacc.c:1661 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@ -2075,7 +2039,7 @@ yyreturn:
#endif
return yyresult;
}
#line 329 "query.yacc" /* yacc.c:1906 */
#line 311 "query.yacc" /* yacc.c:1906 */
void *yy_scan_string(char *, void *);
void yy_delete_buffer(void *, void *);
@ -2085,7 +2049,7 @@ parse_query(char *const query_s)
{
query q;
q.error = NULL;
yydebug = 1;
/* yydebug = 1; */
void *scanner;
yylex_init(&scanner);
void *buffer = yy_scan_string(query_s, scanner);