diff options
Diffstat (limited to 'comp/lucas-standen-NEA/code/tokenizer')
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/tokenizer.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c index c72270b..afd68fe 100644 --- a/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c +++ b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c @@ -126,8 +126,11 @@ ast_node *tokenize(char *input){ expressFunction(function, node); - char *tok; - tok = strtok(strstr(exp, " ") + 1, " "); + char *tok, *saveptr, *expptr = exp; + + exp = strstr(exp, " "); + tok = strtok_r(exp, " ", &saveptr); + argCount = 0; depth = 0; do { @@ -143,10 +146,10 @@ ast_node *tokenize(char *input){ if (tok[0] == '(') depth++; if (tok[strlen(tok)-1] == ')') depth--; - tok = strtok(NULL, " "); + tok = strtok_r(NULL, " ", &saveptr); } while (tok != NULL); - free(exp); + free(expptr); return node; } |