feat: add prepared error/null ok returns from gen_* functions

This commit is contained in:
samsonium
2026-11-04 22:52:40 +03:00
parent aae183c0c0
commit 181458ecda
18 changed files with 232 additions and 66 deletions
+8 -8
View File
@@ -8,23 +8,23 @@
gen_res_t gen_loop(fzl_gen_t *gen, fzl_node_t *node)
{
if (!gen || !node)
return (gen_res_t){.error = true};
return gen_error;
fzl_gen_ctx_t *ctx = gen_ctx(gen, FZL_GEN_CTX_TYPE_LOOP, node);
if (!ctx)
return (gen_res_t){.error = true};
return gen_error;
gen_op(gen, FZL_OPCODE_MK_ENVTABLE);
if (node->loop.init)
if (gen_common(gen, node->loop.init).error)
return (gen_res_t){.error = true};
return gen_error;
size_t start_ip = gen->ops_count;
if (node->loop.cond)
{
if (gen_common(gen, node->loop.cond).error)
return (gen_res_t){.error = true};
return gen_error;
}
else
{
@@ -37,11 +37,11 @@ gen_res_t gen_loop(fzl_gen_t *gen, fzl_node_t *node)
gen_word(gen, 0);
if (gen_common(gen, node->loop.body).error)
return (gen_res_t){.error = true};
return gen_error;
if (node->loop.step)
if (gen_common(gen, node->loop.step).error)
return (gen_res_t){.error = true};
return gen_error;
gen_op(gen, FZL_OPCODE_JMP);
gen_word(gen, start_ip);
@@ -57,7 +57,7 @@ gen_res_t gen_loop(fzl_gen_t *gen, fzl_node_t *node)
ctx = gen_fin_ctx(gen);
if (!ctx)
return (gen_res_t){.error = true};
return gen_error;
return (gen_res_t){.error = false, .type = FZL_TYPE_NULL, .classname = NULL};
return gen_ok_null;
}