From 0ec3d0fa350772cfd7915767b4a6a62ce22b6e45 Mon Sep 17 00:00:00 2001
From: omicron <omicron.me@protonmail.com>
Date: Wed, 2 Apr 2025 11:15:02 +0200
Subject: [PATCH] Fix parser loops in parse_any and parse_consecutive

---
 src/parser_combinators.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/parser_combinators.c b/src/parser_combinators.c
index bba0758..45c0d55 100644
--- a/src/parser_combinators.c
+++ b/src/parser_combinators.c
@@ -50,7 +50,8 @@ parse_result_t parse_list(tokenlist_entry_t *current, node_id_t id,
 }
 
 parse_result_t parse_any(tokenlist_entry_t *current, parser_t parsers[]) {
-    for (parser_t parser = *parsers; parser; parser = *parsers++) {
+    parser_t parser;
+    while ((parser = *parsers++)) {
         parse_result_t result = parser(current);
         if (result.err == nullptr)
             return result;
@@ -106,7 +107,8 @@ parse_result_t parse_consecutive(tokenlist_entry_t *current, node_id_t id,
 
     all->id = id;
 
-    for (parser_t parser = *parsers; parser && current; parser = *parsers++) {
+    parser_t parser;
+    while ((parser = *parsers++) && current) {
         result = parser(current);
         if (result.err) {
             ast_node_free(all);