diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -462,8 +462,8 @@ function(Token **rest, Token *tok) while (tok->type == TOK_WORD) { cur = cur->next = new_word(tok); tok = tok->next; - if (equal(tok, ",")) - tok = tok->next; + if (!equal(tok, ")")) + tok = skip(tok, ","); } node->lhs->next = head.next; tok = skip(tok, ")"); @@ -516,8 +516,8 @@ global(Token **rest, Token *tok) cur->val = const_expr(expr(&tok, tok)); } - if (equal(tok, ",")) - tok = tok->next; + if (!equal(tok, ";")) + tok = skip(tok, ","); } *rest = skip(tok, ";"); @@ -542,8 +542,8 @@ local(Token **rest, Token *tok) cur->rhs = expr(&tok, tok); } - if (equal(tok, ",")) - tok = tok->next; + if (!equal(tok, ";")) + tok = skip(tok, ","); } *rest = skip(tok, ";"); @@ -693,8 +693,8 @@ fncall(Token **rest, Token *tok) tok = skip(tok, "("); while (tok->type != TOK_EOF && !equal(tok, ")")) { cur = cur->next = expr(&tok, tok); - if (equal(tok, ",")) - tok = tok->next; + if (!equal(tok, ")")) + tok = skip(tok, ","); } *rest = skip(tok, ")"); |