ref: add type/classname result for each gen_* function

This commit is contained in:
samsonium
2026-11-04 22:25:25 +03:00
parent b278e8bb74
commit aae183c0c0
15 changed files with 204 additions and 108 deletions
+8 -8
View File
@@ -6,14 +6,14 @@
#include <string.h>
// Class definition
bool gen_class(fzl_gen_t *gen, fzl_node_t *node)
gen_res_t gen_class(fzl_gen_t *gen, fzl_node_t *node)
{
if (!gen || !node)
return false;
return (gen_res_t){.error = true};
fzl_gen_ctx_t *ctx = gen_ctx(gen, FZL_GEN_CTX_TYPE_CLASS, node);
if (!ctx)
return false;
return (gen_res_t){.error = true};
gen->classes[gen->classes_count] = fzl_mkctable(node->class.name->value);
fzl_ctable_t *class = gen->classes[gen->classes_count++];
@@ -37,7 +37,7 @@ bool gen_class(fzl_gen_t *gen, fzl_node_t *node)
if (!resolved)
{
free(class->fields);
return false;
return (gen_res_t){.error = true};
}
class->fields[class->fields_count] = (fzl_ctable_field_t){
@@ -63,10 +63,10 @@ bool gen_class(fzl_gen_t *gen, fzl_node_t *node)
free(fn->fn.name->value);
fn->fn.name->value = method_name;
if (!gen_common(gen, fn))
if (gen_common(gen, fn).error)
{
free(class->fields);
return false;
return (gen_res_t){.error = true};
}
}
@@ -74,8 +74,8 @@ bool gen_class(fzl_gen_t *gen, fzl_node_t *node)
if (!ctx)
{
free(class->fields);
return false;
return (gen_res_t){.error = true};
}
return true;
return (gen_res_t){.error = false, .type = FZL_TYPE_NULL, .classname = NULL};
}