-
-#if 0
-token* token_new()
-{
- token *tok = (token*)mem_a(sizeof(token));
- if (!tok)
- return NULL;
- memset(tok, 0, sizeof(*tok));
- return tok;
-}
-
-void token_delete(token *self)
-{
- if (self->next && self->next->prev == self)
- self->next->prev = self->prev;
- if (self->prev && self->prev->next == self)
- self->prev->next = self->next;
- MEM_VECTOR_CLEAR(self, value);
- mem_d(self);
-}
-
-token* token_copy(const token *cp)
-{
- token* self = token_new();
- if (!self)
- return NULL;
- /* copy the value */
- self->value_alloc = cp->value_count + 1;
- self->value_count = cp->value_count;
- self->value = (char*)mem_a(self->value_alloc);
- if (!self->value) {
- mem_d(self);
- return NULL;
- }
- memcpy(self->value, cp->value, cp->value_count);
- self->value[self->value_alloc-1] = 0;
-
- /* rest */
- self->ctx = cp->ctx;
- self->ttype = cp->ttype;
- memcpy(&self->constval, &cp->constval, sizeof(self->constval));
- return self;
-}
-
-void token_delete_all(token *t)
-{
- token *n;
-
- do {
- n = t->next;
- token_delete(t);
- t = n;
- } while(t);
-}
-
-token* token_copy_all(const token *cp)
-{
- token *cur;
- token *out;
-
- out = cur = token_copy(cp);
- if (!out)
- return NULL;
-
- while (cp->next) {
- cp = cp->next;
- cur->next = token_copy(cp);
- if (!cur->next) {
- token_delete_all(out);
- return NULL;
- }
- cur->next->prev = cur;
- cur = cur->next;
- }
-
- return out;
-}
-#else