blob: ecaf53aed64b24c51182690e4cb4860913639d52 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
|