#ifndef DICT_H #define DICT_H #include #include struct level { uint64_t bit_mask; uint64_t *token_masks; }; #ifndef MAPPED_CHARS #define MAPPED_CHARS 32 #endif struct dict { // parameters for compilation struct string_token { char *s; int t; } *strings; size_t nstrings; uint8_t *char_to_bit; // result of compilation struct level start_level; struct level *bit_to_ptr[MAPPED_CHARS]; size_t num_levels; }; int dict_compile(struct dict *d); void dict_free(struct dict *d); void dict_print(struct dict *d); int dict_check(struct dict *d, char *string); #endif