save state in completed objects
[protos/libecoli.git] / lib / ecoli_node_expr.c
index 9207e4d..129163e 100644 (file)
@@ -80,12 +80,11 @@ static int ec_node_expr_parse(const struct ec_node *gen_node,
 static int
 ec_node_expr_complete(const struct ec_node *gen_node,
                struct ec_completed *completed,
-               struct ec_parsed *parsed,
                const struct ec_strvec *strvec)
 {
        struct ec_node_expr *node = (struct ec_node_expr *)gen_node;
 
-       return ec_node_complete_child(node->child, completed, parsed, strvec);
+       return ec_node_complete_child(node->child, completed, strvec);
 }
 
 static void ec_node_expr_free_priv(struct ec_node *gen_node)
@@ -527,7 +526,7 @@ static int eval_expression(struct result *result,
        memset(result, 0, sizeof(*result));
        memset(&child_result, 0, sizeof(child_result));
 
-       type = get_node_type(expr_gen_node, parsed->node);
+       type = get_node_type(expr_gen_node, ec_parsed_get_node(parsed));
        if (type == VAL) {
                ret = ops->eval_var(&result->val, userctx, parsed);
                if (ret < 0)
@@ -538,9 +537,9 @@ static int eval_expression(struct result *result,
                result->op_type = type;
        }
 
-       TAILQ_FOREACH(child, &parsed->children, next) {
+       EC_PARSED_FOREACH_CHILD(child, parsed) {
 
-               type = get_node_type(expr_gen_node, child->node);
+               type = get_node_type(expr_gen_node, ec_parsed_get_node(child));
                if (type == PAREN_OPEN) {
                        open = child;
                        continue;