aboutsummaryrefslogtreecommitdiff
path: root/src/token.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/token.c')
-rw-r--r--src/token.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/token.c b/src/token.c
index ece32f4..935f23e 100644
--- a/src/token.c
+++ b/src/token.c
@@ -2,12 +2,14 @@
#include "include/token.h"
-token_t* token_init(int type, char* val) {
+token_t* token_init(int type, char val) {
token_t* token;
token = emalloc(sizeof(struct TOKEN_STRUC));
token->type = type;
- token->val = val;
+ token->val = emalloc(2);
+ *token->val = val;
+ token->val[1] = '\0';
token->nxt = NULL;
return token;
@@ -32,3 +34,22 @@ token_t* token_last(token_t* token) {
return t;
}
+
+void token_add_char(token_t* token, char c) {
+ size_t orig;
+
+ orig = strlen(token->val);
+
+ token->val = erealloc(token->val, orig + sizeof c + 1);
+ token->val[orig] = c;
+ token->val[orig + 1] = '\0';
+}
+
+void token_print(token_t* token) {
+
+ log_dbg("token/t=%d\t/v=%s", token->type, token->val);
+
+ if (token->nxt) {
+ token_print(token->nxt);
+ }
+}