remove node build
[protos/libecoli.git] / lib / ecoli_node_expr_test.c
index f14cf50..45c169e 100644 (file)
@@ -51,7 +51,9 @@ ec_node_expr_test_eval_var(void **result, void *userctx,
        const struct ec_parsed *var)
 {
        const struct ec_strvec *vec;
-       struct my_eval_result *eval;
+       const struct ec_node *node;
+       struct my_eval_result *eval = NULL;
+       int64_t val;
 
        (void)userctx;
 
@@ -60,12 +62,16 @@ ec_node_expr_test_eval_var(void **result, void *userctx,
        if (ec_strvec_len(vec) != 1)
                return -EINVAL;
 
+       node = ec_parsed_get_node(var);
+       if (ec_node_int_getval(node, ec_strvec_val(vec, 0), &val) < 0)
+               return -EINVAL;
+
        eval = ec_malloc(sizeof(*eval));
        if (eval == NULL)
                return -ENOMEM;
 
-       eval->val = atoi(ec_strvec_val(vec, 0)); // XXX use strtol
-       printf("eval var %d\n", eval->val);
+       eval->val = val;
+       EC_LOG(EC_LOG_DEBUG, "eval var %d\n", eval->val);
        *result = eval;
 
        return 0;
@@ -90,7 +96,7 @@ ec_node_expr_test_eval_pre_op(void **result, void *userctx, void *operand,
        else
                return -EINVAL;
 
-       printf("eval pre_op %d\n", eval->val);
+       EC_LOG(EC_LOG_DEBUG, "eval pre_op %d\n", eval->val);
        *result = eval;
 
        return 0;
@@ -115,7 +121,7 @@ ec_node_expr_test_eval_post_op(void **result, void *userctx, void *operand,
        else
                return -EINVAL;
 
-       printf("eval post_op %d\n", eval->val);
+       EC_LOG(EC_LOG_DEBUG, "eval post_op %d\n", eval->val);
        *result = eval;
 
        return 0;
@@ -144,7 +150,7 @@ ec_node_expr_test_eval_bin_op(void **result, void *userctx, void *operand1,
        else
                return -EINVAL;
 
-       printf("eval bin_op %d\n", eval1->val);
+       EC_LOG(EC_LOG_DEBUG, "eval bin_op %d\n", eval1->val);
        ec_free(eval2);
        *result = eval1;
 
@@ -161,7 +167,7 @@ ec_node_expr_test_eval_parenthesis(void **result, void *userctx,
        (void)open_paren;
        (void)close_paren;
 
-       printf("eval paren\n");
+       EC_LOG(EC_LOG_DEBUG, "eval paren\n");
        *result = value;
 
        return 0;
@@ -192,8 +198,6 @@ static int ec_node_expr_test_eval(struct ec_node *lex_node,
        struct my_eval_result *eval;
        int ret;
 
-       /* XXX check node type (again and again) */
-
        p = ec_node_parse(lex_node, str);
        if (p == NULL)
                return -1;
@@ -207,7 +211,7 @@ static int ec_node_expr_test_eval(struct ec_node *lex_node,
        eval = result;
        assert(eval != NULL);
 
-       printf("result: %d (expected %d)\n", eval->val, val);
+       EC_LOG(EC_LOG_DEBUG, "result: %d (expected %d)\n", eval->val, val);
        if (eval->val == val)
                ret = 0;
        else