[tokens] Adding a copy_tokens option for tokenized_string
This commit is contained in:
@@ -20,10 +20,14 @@ void tokenized_string_add_token(tokenized_string_t *self, const char *src, size_
|
||||
|
||||
}
|
||||
|
||||
tokenized_string_t *tokenized_string_from_tokens(char *src, token_array *tokens) {
|
||||
tokenized_string_t *tokenized_string_from_tokens(char *src, token_array *tokens, bool copy_tokens) {
|
||||
tokenized_string_t *self = malloc(sizeof(tokenized_string_t));
|
||||
self->str = cstring_array_new_size(strlen(src) + tokens->n);
|
||||
if (copy_tokens) {
|
||||
self->tokens = token_array_new_copy(tokens);;
|
||||
} else {
|
||||
self->tokens = tokens;
|
||||
}
|
||||
|
||||
token_t token;
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ typedef struct tokenized_string {
|
||||
} tokenized_string_t;
|
||||
|
||||
tokenized_string_t *tokenized_string_new(void);
|
||||
tokenized_string_t *tokenized_string_from_tokens(char *src, token_array *tokens);
|
||||
tokenized_string_t *tokenized_string_from_tokens(char *src, token_array *tokens, bool copy_tokens);
|
||||
void tokenized_string_add_token(tokenized_string_t *self, const char *src, size_t len, uint16_t token_type, size_t position);
|
||||
char *tokenized_string_get_token(tokenized_string_t *self, uint32_t index);
|
||||
void tokenized_string_destroy(tokenized_string_t *self);
|
||||
|
||||
Reference in New Issue
Block a user