cuex/ssfn.h: Syntactic/Semantic Functions
[cuex: Expressions]

Data Structures

struct  cuex_ssfn_node
struct  cuex_ssfn
struct  cuex_ssfn_matchinfo
struct  cuexP_ssfn_find_jargs
struct  cuex_ssfn_find_it

Defines

#define cuex_ssfn_ctrl_do_delete(ctrl)   ((ctrl) & 1)
#define cuex_ssfn_ctrl_do_cont(ctrl)   ((ctrl) <= cuex_ssfn_ctrl_cut_mg)
#define cuex_ssfn_find_it_is_end(it)   (CU_MARG(cuex_ssfn_find_it_t, it)->slot == NULL)
#define cuex_ssfn_find_it_arg_cnt(it)   (CU_MARG(cuex_ssfn_find_it_t, it)->arg_cnt)
#define cuex_ssfn_find_it_arg_arr(it)   (CU_MARG(cuex_ssfn_find_it_t, it)->arg_arr)
#define cuex_ssfn_find_it_slot(it)   (CU_MARG(cuex_ssfn_find_it_t, it)->slot)

Typedefs

typedef struct cuex_ssfn_nodecuex_ssfn_node_t
typedef struct cuex_ssfncuex_ssfn_t
typedef unsigned long cuex_ssfn_seqno_t
typedef struct
cuex_ssfn_matchinfo
cuex_ssfn_matchinfo_t
typedef struct cuex_ssfn_find_itcuex_ssfn_find_it_t
typedef struct
cuexP_ssfn_find_jargs
cuexP_ssfn_find_jargs_t

Enumerations

enum  cuex_ssfn_ctrl_t {
  cuex_ssfn_ctrl_unmatched = 0, cuex_ssfn_ctrl_cont_delete = 1, cuex_ssfn_ctrl_continue = 2, cuex_ssfn_ctrl_cut_mg = 4,
  cuex_ssfn_ctrl_commit = 6, cuex_ssfn_ctrl_fail = 8
}

Functions

void cuex_ssfn_cct (cuex_ssfn_t ssfn)
cuex_ssfn_t cuex_ssfn_new (void)
void cuex_ssfn_dct (cuex_ssfn_t ssfn)
void cuex_ssfn_cct_copy_mem (cuex_ssfn_t dst, cuex_ssfn_t src, size_t slot_size, cu_clop(slot_cct_copy, void, void *, void *))
cuex_ssfn_t cuex_ssfn_new_copy_mem (cuex_ssfn_t src, size_t slot_size, cu_clop(slot_cct_copy, void, void *, void *))
cu_bool_t cuex_ssfn_insert_mem (cuex_ssfn_t ssfn, cuex_t patn, cuex_ssfn_seqno_t seqno, size_t slot_size, cu_ptr_ptr_t slot_o, cu_count_t *var_cnt_o, cuex_var_t **var_arr_o)
void cuex_ssfn_find (cuex_ssfn_t ssfn, cuex_t key, cu_clop(out, cu_bool_t, cu_count_t arg_cnt, cuex_t *arg_arr, void *slot))
void cuex_ssfn_intersection_find_aux (cuex_ssfn_t ssfn_first, cucon_list_t ssfn_list, cuex_t key, cu_clop(out, cu_bool_t, cu_count_t arg_cnt, cuex_t *arg_arr, void *slot))
typedef cu_clop (cuex_ssfn_find_cb_t, cuex_ssfn_ctrl_t, void *slot, cuex_subst_t subst, cu_rank_t pat_arg_cnt, cuex_t *pat_arg_arr, cuex_ssfn_matchinfo_t mi)
cuex_ssfn_ctrl_t cuex_ssfn_find_mgu (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key, cuex_ssfn_seqno_t seqno, cuex_ssfn_find_cb_t cb)
cuex_ssfn_ctrl_t cuex_ssfn_find_wpmgu (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key, cuex_ssfn_seqno_t seqno, cuex_ssfn_find_cb_t cb)
cuex_ssfn_ctrl_t cuex_ssfn_find_lgr (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key, cuex_ssfn_seqno_t seqno, cuex_ssfn_find_cb_t cb)
cuex_ssfn_ctrl_t cuex_ssfn_find_mgr (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key, cuex_ssfn_seqno_t seqno, cuex_ssfn_find_cb_t cb)
cuex_ssfn_ctrl_t cuex_ssfn_find_wpmgr (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key, cuex_ssfn_seqno_t seqno, cuex_ssfn_find_cb_t cb)
cuex_ssfn_ctrl_t cuex_ssfn_find_eqr (cuex_ssfn_t ssfn, cuex_t key, cu_clop(cb, cuex_ssfn_ctrl_t, void *slot))
cu_bool_t cuex_ssfn_have_wpmgu (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key, cuex_ssfn_seqno_t seqno)
cu_bool_t cuex_ssfn_have_wpmgr (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key, cuex_ssfn_seqno_t seqno)
void cuex_ssfn_erase_lgr (cuex_ssfn_t ssfn, cuex_t key)
void cuex_ssfn_erase_mgr (cuex_ssfn_t ssfn, cuex_t key)
void cuex_ssfn_erase_wpmgr (cuex_ssfn_t ssfn, cuex_t key)
void * cuex_ssfn_find_single_wpmgr (cuex_ssfn_t ssfn, cuex_subst_t subst, cuex_t key)
void cuex_ssfn_dump_keys (cuex_ssfn_t ssfn, FILE *out)
void cuex_ssfn_find_it_cct (cuex_ssfn_find_it_t it, cuex_ssfn_t ssfn, cuex_t)
cuex_ssfn_find_it_t cuex_ssfn_find_it_new (cuex_ssfn_t ssfn, cuex_t key)
void cuex_ssfn_find_it_advance (cuex_ssfn_find_it_t it)
void cuex_ssfn_find_it_report_match (cuex_ssfn_find_it_t it)
cu_bool_t cuex_ssfn_find_it_match_lgr (cuex_ssfn_find_it_t it0, cuex_ssfn_find_it_t it1)

Function Documentation

typedef cu_clop ( cuex_ssfn_find_cb_t  ,
cuex_ssfn_ctrl_t  ,
void *  slot,
cuex_subst_t  subst,
cu_rank_t  pat_arg_cnt,
cuex_t pat_arg_arr,
cuex_ssfn_matchinfo_t  mi 
)

Closure pointer type used for callbacks for various search functions.

Generated 2009-11-23 for culibs-0.25 using Doxygen. Maintained by Petter Urkedal.