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);