diff --git a/src/frontend/grammar.y b/src/frontend/grammar.y
index d4e54a9c4c8f3869946bfa151de5d764c1156e88..187f3599c08e2514596bd5046d653c8f03c26842 100644 (file)
--- a/src/frontend/grammar.y
+++ b/src/frontend/grammar.y
%type <m> matcher
compare_matcher
-%type <expr> expression
+%type <expr> expression object_expression
%type <integer> object_type object_type_plural
%type <integer> iterable
sdb_conn_node_t *n;
n = SDB_CONN_NODE(sdb_object_create_dT(/* name = */ NULL,
conn_expr_t, conn_expr_destroy));
- n->cmd = CONNECTION_EXPR;
+ n->cmd = SDB_CONNECTION_EXPR;
CONN_EXPR(n)->expr = $1;
sdb_llist_append(pt, SDB_OBJ(n));
CONN_FETCH($$)->host = $3;
CONN_FETCH($$)->name = NULL;
CONN_FETCH($$)->filter = CONN_MATCHER($4);
- $$->cmd = CONNECTION_FETCH;
+ $$->cmd = SDB_CONNECTION_FETCH;
}
|
FETCH object_type STRING '.' STRING filter_clause
CONN_FETCH($$)->host = $3;
CONN_FETCH($$)->name = $5;
CONN_FETCH($$)->filter = CONN_MATCHER($6);
- $$->cmd = CONNECTION_FETCH;
+ $$->cmd = SDB_CONNECTION_FETCH;
}
;
conn_list_t, conn_list_destroy));
CONN_LIST($$)->type = $2;
CONN_LIST($$)->filter = CONN_MATCHER($3);
- $$->cmd = CONNECTION_LIST;
+ $$->cmd = SDB_CONNECTION_LIST;
}
;
CONN_LOOKUP($$)->type = $2;
CONN_LOOKUP($$)->matcher = CONN_MATCHER($3);
CONN_LOOKUP($$)->filter = CONN_MATCHER($4);
- $$->cmd = CONNECTION_LOOKUP;
+ $$->cmd = SDB_CONNECTION_LOOKUP;
}
;
CONN_TS($$)->metric = $4;
CONN_TS($$)->opts.start = $5;
CONN_TS($$)->opts.end = $6;
- $$->cmd = CONNECTION_TIMESERIES;
+ $$->cmd = SDB_CONNECTION_TIMESERIES;
}
;
$$ = SDB_CONN_NODE(sdb_object_create_dT(/* name = */ NULL,
conn_matcher_t, conn_matcher_destroy));
- $$->cmd = CONNECTION_MATCHER;
+ $$->cmd = SDB_CONNECTION_MATCHER;
CONN_MATCHER($$)->matcher = $1;
}
;
sdb_object_deref(SDB_OBJ($3)); $3 = NULL;
}
|
+ object_expression
+ {
+ $$ = $1;
+ }
+ |
+ data
+ {
+ $$ = sdb_store_expr_constvalue(&$1);
+ sdb_data_free_datum(&$1);
+ }
+ ;
+
+object_expression:
+ object_type '.' object_expression
+ {
+ $$ = sdb_store_expr_typed($1, $3);
+ sdb_object_deref(SDB_OBJ($3));
+ }
+ |
field
{
$$ = sdb_store_expr_fieldvalue($1);
$$ = sdb_store_expr_attrvalue($3);
free($3); $3 = NULL;
}
- |
- data
- {
- $$ = sdb_store_expr_constvalue(&$1);
- sdb_data_free_datum(&$1);
- }
;
object_type: