summaryrefslogtreecommitdiff
path: root/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c
diff options
context:
space:
mode:
Diffstat (limited to 'comp/lucas-standen-NEA/code/tokenizer/tokenizer.c')
-rw-r--r--comp/lucas-standen-NEA/code/tokenizer/tokenizer.c11
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;
}