[utils] string_tree_num_tokens

This commit is contained in:
Al
2015-07-27 12:36:34 -04:00
parent b812d90c59
commit 7aee159c0c
2 changed files with 7 additions and 1 deletions

View File

@@ -797,6 +797,10 @@ inline void string_tree_append_string_len(string_tree_t *self, char *str, size_t
cstring_array_append_string_len(self->strings, str, len);
}
inline uint32_t string_tree_num_tokens(string_tree_t *self) {
return self->token_indices->n - 1;
}
inline uint32_t string_tree_num_alternatives(string_tree_t *self, uint32_t i) {
if (i >= self->token_indices->n) return 0;
return self->token_indices->a[i + 1] - self->token_indices->a[i];
@@ -824,7 +828,7 @@ string_tree_iterator_t *string_tree_iterator_new(string_tree_t *tree) {
string_tree_iterator_t *self = malloc(sizeof(string_tree_iterator_t));
self->tree = tree;
uint32_t num_tokens = tree->token_indices->n - 1;
uint32_t num_tokens = string_tree_num_tokens(tree);
self->num_tokens = num_tokens;
// calloc since the first path through the tree is all zeros

View File

@@ -207,6 +207,8 @@ void string_tree_add_string_len(string_tree_t *self, char *str, size_t len);
void string_tree_append_string(string_tree_t *self, char *str);
void string_tree_append_string_len(string_tree_t *self, char *str, size_t len);
uint32_t string_tree_num_tokens(string_tree_t *self);
uint32_t string_tree_num_alternatives(string_tree_t *self, uint32_t i);
void string_tree_destroy(string_tree_t *self);