55 #if !defined(__AMXP_EXPR_H__)
56 #define __AMXP_EXPR_H__
350 const char* expr_fmt,
352 __attribute__ ((format(printf, 2, 3)));
370 const char* expr_fmt,
406 const char* expr_fmt,
408 __attribute__ ((format(printf, 2, 3)));
426 const char* expr_fmt,
549 const amxc_var_t*
const data,
649 amxc_htable_t* values,
715 const amxc_set_t*
const data,
const char * amxp_expr_get_string(amxp_expr_t *expr)
Returns the string representation of the given expression.
ssize_t(* amxp_expr_reader_t)(amxp_expr_t *expr, void *buf, size_t max_size)
Expression reader function.
amxp_expr_status_t amxp_expr_new(amxp_expr_t **expr, const char *expression)
Allocates and initializes an expression.
_expr_status
Expression status/error codes.
bool amxp_expr_eval(amxp_expr_t *expr, amxp_expr_status_t *status)
Evaluates an expression.
amxp_expr_status_t amxp_expr_buildf_new(amxp_expr_t **expr, const char *expr_fmt,...) __attribute__((format(printf
Allocates and initializes an expression with format-string and safety checks.
int amxp_expr_find_var_values(const amxc_var_t *const var, amxc_htable_t *values, const char *path)
Search matching variant paths in a composite variant.
amxp_expr_status_t amxp_expr_buildf(amxp_expr_t *expr, const char *expr_fmt,...) __attribute__((format(printf
Initializes an expression structure.
amxp_expr_status_t amxp_expr_status_t amxp_expr_vbuildf(amxp_expr_t *expr, const char *expr_fmt, va_list args)
va_list version of amxp_expr_buildf
bool amxp_expr_eval_set(amxp_expr_t *expr, const amxc_set_t *const data, amxp_expr_status_t *status)
Evaluates an expression against a set.
bool amxp_expr_eval_var(amxp_expr_t *expr, const amxc_var_t *const data, amxp_expr_status_t *status)
Evaluates an expression against a composite variant.
void amxp_expr_clean(amxp_expr_t *expr)
Clean-up the expression structure.
int amxp_expr_find_var_paths(const amxc_var_t *const var, amxc_llist_t *paths, const char *path)
Search matching variant paths in a composite variant.
amxp_expr_status_t amxp_expr_status_t amxp_expr_vbuildf_new(amxp_expr_t **expr, const char *expr_fmt, va_list args)
va_list version of amxp_expr_buildf_new
amxp_expr_status_t(* amxp_expr_get_field_t)(amxp_expr_t *expr, amxc_var_t *value, const char *path, void *priv)
Field fetcher function signature.
bool(* amxp_expr_bool_func_t)(amxp_expr_t *expr, amxc_var_t *args)
Callback function that evaluates to true or false.
int amxp_expr_add_value_fn(const char *fn_name, amxp_expr_value_func_t fn)
Adds a value calculation function.
amxp_expr_status_t(* amxp_expr_value_func_t)(amxp_expr_t *expr, amxc_var_t *args, amxc_var_t *ret)
Callback function that can "calculate" a value.
amxp_expr_status_t amxp_expr_get_field_var(amxp_expr_t *expr, amxc_var_t *value, const char *path, void *priv)
Variant field fetcher implementation.
amxp_expr_status_t amxp_expr_init(amxp_expr_t *expr, const char *expression)
Initializes an expression structure.
bool amxp_expr_evaluate(amxp_expr_t *expr, amxp_expr_get_field_t fn, void *priv, amxp_expr_status_t *status)
Evaluates an expression.
int amxp_expr_add_bool_fn(const char *fn_name, amxp_expr_bool_func_t fn)
Adds a boolean evaluation function.
void amxp_expr_dump_tree(amxp_expr_t *expr)
Dumps the binary tree in dot formatted text file to stdout.
amxp_expr_status_t amxp_expr_get_field_set(amxp_expr_t *expr, amxc_var_t *value, const char *path, void *priv)
Flag field fetcher implementation for sets.
amxc_var_t * amxp_expr_find_var(const amxc_var_t *const var, const char *path)
Search a matching variant and returns a pointer to that variant.
enum _expr_status amxp_expr_status_t
Expression status/error codes.
void amxp_expr_delete(amxp_expr_t **expr)
Deletes a previously allocated expression structure.
@ amxp_expr_status_syntax_error
@ amxp_expr_status_invalid_value
@ amxp_expr_status_field_not_found
@ amxp_expr_status_unknown_error
@ amxp_expr_status_function_not_found
@ amxp_expr_status_invalid_regexp
amxp_expr_get_field_t get_field
amxp_expr_reader_t reader
amxp_expr_status_t status
static amxc_string_t path