From c80417c925b70b28f78a3111baa503f9b489286d Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 28 Jun 2024 22:12:55 +0200 Subject: Properly check for EOF --- src/parser.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/parser.c b/src/parser.c index d71627e..6a96154 100644 --- a/src/parser.c +++ b/src/parser.c @@ -378,12 +378,19 @@ isfunc(lexemes_t toks) if (toks.kinds[toksidx + 1] == LEXRPAR) return true; - for (size_t i = toksidx + 1;; i++) { + for (size_t i = toksidx + 1, nst = 1;; i++) { switch (toks.kinds[i]) { + case LEXLPAR: + nst++; + break; case LEXRPAR: - return false; + if (--nst == 0) + return false; + break; case LEXCOLON: return true; + case LEXEOF: + return false; } } } -- cgit v1.2.3