diff options
author | kartofen <mladenovnasko0@gmail.com> | 2025-07-08 19:14:02 +0300 |
---|---|---|
committer | kartofen <mladenovnasko0@gmail.com> | 2025-07-08 19:14:02 +0300 |
commit | e911e95f697b0eb48ed4e68cb2586ffb0dc11341 (patch) | |
tree | 3981038900cff77a0d3b0aaf739cc22025816810 /util/dict.h | |
parent | d028cc9c04cf46256166434bdea68d5f5c6d310f (diff) |
move things around
Diffstat (limited to 'util/dict.h')
-rw-r--r-- | util/dict.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/util/dict.h b/util/dict.h new file mode 100644 index 0000000..ecaf53a --- /dev/null +++ b/util/dict.h @@ -0,0 +1,33 @@ +#ifndef DICT_H +#define DICT_H + +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 |