Code

store: Add sdb_store_query_prepare_matcher().
[sysdb.git] / src / frontend / grammar.y
index a573b2b1dac5e425d3febba39cbc10657f399ed6..31b71a0eba7665b94de03bd47c50a0cd989ff24e 100644 (file)
@@ -78,7 +78,7 @@ sdb_fe_yyerrorf(YYLTYPE *lval, sdb_fe_yyscan_t scanner, const char *fmt, ...);
 #define MODE_TO_STRING(m) \
        (((m) == SDB_PARSE_DEFAULT) ? "statement" \
                : ((m) == SDB_PARSE_COND) ? "condition" \
-               : ((m) == SDB_PARSE_EXPR) ? "expression" \
+               : ((m) == SDB_PARSE_ARITH) ? "arithmetic expression" \
                : "UNKNOWN")
 
 %}
@@ -119,7 +119,7 @@ sdb_fe_yyerrorf(YYLTYPE *lval, sdb_fe_yyscan_t scanner, const char *fmt, ...);
 
 %token HOST_T HOSTS_T SERVICE_T SERVICES_T METRIC_T METRICS_T
 %token ATTRIBUTE_T ATTRIBUTES_T
-%token NAME_T LAST_UPDATE_T AGE_T INTERVAL_T BACKEND_T
+%token NAME_T LAST_UPDATE_T AGE_T INTERVAL_T BACKEND_T VALUE_T
 
 %token LAST UPDATE
 
@@ -244,7 +244,7 @@ statements:
        expression
                {
                        /* only accepted in expression parse mode */
-                       if (! (parser_mode & SDB_PARSE_EXPR)) {
+                       if (! (parser_mode & SDB_PARSE_ARITH)) {
                                sdb_fe_yyerrorf(&yylloc, scanner,
                                                YY_("syntax error, unexpected expression, "
                                                        "expecting %s"), MODE_TO_STRING(parser_mode));
@@ -700,6 +700,8 @@ field:
        INTERVAL_T { $$ = SDB_FIELD_INTERVAL; }
        |
        BACKEND_T { $$ = SDB_FIELD_BACKEND; }
+       |
+       VALUE_T { $$ = SDB_FIELD_VALUE; }
        ;
 
 cmp: