Code

frontend: Use the plugin query interface instead of direct store access.
[sysdb.git] / src / parser / parser.c
index de6085fd176b7ae346b9f61d71369d8d3b2d5750..2e0b864a9132e78c644e6b3316fa5724afde327b 100644 (file)
@@ -27,8 +27,6 @@
 
 #include "sysdb.h"
 
-#include "core/store.h"
-
 #include "parser/ast.h"
 #include "parser/parser.h"
 #include "parser/grammar.h"
@@ -140,6 +138,11 @@ sdb_parser_parse_conditional(const char *cond, int len, sdb_strbuf_t *errbuf)
 
        assert(SDB_AST_IS_LOGICAL(node));
        sdb_llist_destroy(yyextra.parsetree);
+
+       if (sdb_parser_analyze_conditional(node, errbuf)) {
+               sdb_object_deref(SDB_OBJ(node));
+               return NULL;
+       }
        return node;
 } /* sdb_parser_parse_conditional */
 
@@ -175,6 +178,11 @@ sdb_parser_parse_arith(const char *expr, int len, sdb_strbuf_t *errbuf)
 
        assert(SDB_AST_IS_ARITHMETIC(node));
        sdb_llist_destroy(yyextra.parsetree);
+
+       if (sdb_parser_analyze_arith(node, errbuf)) {
+               sdb_object_deref(SDB_OBJ(node));
+               return NULL;
+       }
        return node;
 } /* sdb_parser_parse_arith */