From bf9d827ae10249dcbaa21842bb63fb6ca252b410 Mon Sep 17 00:00:00 2001 From: shabani005 Date: Wed, 12 Nov 2025 14:13:45 +0300 Subject: [PATCH] parser improved --- src/parser.h | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/parser.h b/src/parser.h index 9ab565a..abc34c2 100644 --- a/src/parser.h +++ b/src/parser.h @@ -270,13 +270,21 @@ Token parse_func_def(Token *inp, size_t *idx, SymbolTable *sym){ (*idx)++; skip_space(inp, idx); - if (inp->type[*idx] != TOKEN_COMMA){ - fprintf(stderr, "Expected Comma after type\n"); - fprintf(stderr, "At Token %zu\n", *idx); - exit(1); - } - func.arg_count++; // PROBABLY THE RIGHT PLACE TO DO THIS - (*idx)++; + if (inp->type[*idx] == TOKEN_COMMA){ + (*idx)++; + func.arg_count++; // PROBABLY THE RIGHT PLACE TO DO THIS + continue; + // fprintf(stderr, "Expected Comma after type\n"); + // fprintf(stderr, "At Token %zu\n", *idx); + } else if (inp->type[*idx] == TOKEN_RPAREN){ + break; + // func.arg_count++; // PROBABLY THE RIGHT PLACE TO DO THIS + // (*idx)++; + } else { + fprintf(stderr, "Expected Comma or RPAREN after type\n"); + fprintf(stderr, "At Token %zu\n", *idx); + + } skip_space(inp, idx); }