/* Class FuzzDict:
*
* A symbol table which permits abbreviated matches.
*/
#ifndef _CLASS_FuzzDict_
#define _CLASS_FuzzDict_
#ifdef _CLASS_FuzzDict_PRIVATE_
# define _CLASS_Dict_PRIVATE_
#endif
#include "dict.h"
typedef struct _FuzzDict_* FuzzDict;
#ifdef __STDC__
FuzzDict fuzzdict_new ();
int fuzzdict_ignoreCase (
FuzzDict self,
int yesno
);
FuzzDict fuzatab_dispose ( FuzzDict self );
dict_value_t fuzzdict_find (
FuzzDict self,
dict_key_t key
);
dict_value_t fuzzdict_add (
FuzzDict self,
dict_key_t key,
dict_value_t value
);
dict_value_t fuzzdict_remove (
FuzzDict self,
dict_key_t key
);
#else /* !__STDC__ */
FuzzDict fuzzdict_new ();
int fuzzdict_ignoreCase ( );
FuzzDict fuzatab_dispose ();
dict_value_t fuzzdict_find ();
dict_value_t fuzzdict_add ();
dict_value_t fuzzdict_remove ();
#endif /* !__STDC__ */
/* Now define some macros to call on common functions */
#define fuzzdict_keys(S) dict_keys((Dict)S)
#define fuzzdict_values(S) dict_values((Dict)S)
/* Following declarations are private for class FuzzDict
* and sub-classes.
*/
#ifdef _CLASS_FuzzDict_PRIVATE_
#define _CLASS_FuzzDict_VARS_ \
_CLASS_Dict_VARS_ \
dict_key_t* keylist; \
int keylistValid; \
int (*compare)(); \
int (*sort)();
struct _FuzzDict_ {
_CLASS_FuzzDict_VARS_
};
#endif /* _CLASS_FuzzDict_PRIVATE_ */
#endif /* !_CLASS_FuzzDict_ */
syntax highlighted by Code2HTML, v. 0.9.1