12 #include <ecoli/node.h>
55 typedef int (*ec_node_expr_eval_post_op_t)(
62 typedef int (*ec_node_expr_eval_bin_op_t)(
70 typedef int (*ec_node_expr_eval_parenthesis_t)(
78 typedef void (*ec_node_expr_eval_free_t)(
void *result,
void *userctx);
80 struct ec_node *ec_node_expr(
const char *
id);
81 int ec_node_expr_set_val_node(
struct ec_node *gen_node,
struct ec_node *val_node);
82 int ec_node_expr_add_bin_op(
struct ec_node *gen_node,
struct ec_node *op);
83 int ec_node_expr_add_pre_op(
struct ec_node *gen_node,
struct ec_node *op);
84 int ec_node_expr_add_post_op(
struct ec_node *gen_node,
struct ec_node *op);
85 int ec_node_expr_add_parenthesis(
94 ec_node_expr_eval_post_op_t eval_post_op;
95 ec_node_expr_eval_bin_op_t eval_bin_op;
96 ec_node_expr_eval_parenthesis_t eval_parenthesis;
97 ec_node_expr_eval_free_t eval_free;
100 int ec_node_expr_eval(
int(* ec_node_expr_eval_pre_op_t)(void **result, void *userctx, void *operand, const struct ec_pnode *operator)
int(* ec_node_expr_eval_var_t)(void **result, void *userctx, const struct ec_pnode *var)
struct ec_node * ec_node(const char *typename, const char *id)
struct ec_pnode * ec_pnode(const struct ec_node *node)