diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-17 00:10:30 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-17 00:10:30 +0000 |
| commit | ea160abc678e9578b5e140121a6d7c59a3b9dd06 (patch) | |
| tree | 0ae4d0ed1449f74d6cc361a5f8787892c0789168 /src/codegen/codegen_decl.c | |
| parent | a5d5a97818fb4fbd26c4fb25a5c410b1a60a1b18 (diff) | |
Improved struct pointer codegen, template instantiation and docs...
Diffstat (limited to 'src/codegen/codegen_decl.c')
| -rw-r--r-- | src/codegen/codegen_decl.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/codegen/codegen_decl.c b/src/codegen/codegen_decl.c index fe2829e..18e6987 100644 --- a/src/codegen/codegen_decl.c +++ b/src/codegen/codegen_decl.c @@ -170,7 +170,7 @@ void emit_enum_protos(ASTNode *node, FILE *out) { if (v->variant.payload) { - char *tstr = type_to_string(v->variant.payload); + char *tstr = codegen_type_to_string(v->variant.payload); fprintf(out, "%s %s_%s(%s v);\n", node->enm.name, node->enm.name, v->variant.name, tstr); free(tstr); @@ -306,7 +306,7 @@ void emit_struct_defs(ParserContext *ctx, ASTNode *node, FILE *out) { if (v->variant.payload) { - char *tstr = type_to_string(v->variant.payload); + char *tstr = codegen_type_to_string(v->variant.payload); fprintf(out, "%s %s; ", tstr, v->variant.name); free(tstr); } @@ -318,7 +318,7 @@ void emit_struct_defs(ParserContext *ctx, ASTNode *node, FILE *out) { if (v->variant.payload) { - char *tstr = type_to_string(v->variant.payload); + char *tstr = codegen_type_to_string(v->variant.payload); fprintf(out, "%s %s_%s(%s v) { return (%s){.tag=%s_%s_Tag, " ".data.%s=v}; }\n", @@ -498,7 +498,8 @@ void emit_protos(ASTNode *node, FILE *out) } else { - fprintf(out, "%s %s(%s);\n", f->func.ret_type, f->func.name, f->func.args); + emit_func_signature(out, f, NULL); + fprintf(out, ";\n"); } } else if (f->type == NODE_IMPL) @@ -574,7 +575,8 @@ void emit_protos(ASTNode *node, FILE *out) } else { - fprintf(out, "%s %s(%s);\n", m->func.ret_type, proto, m->func.args); + emit_func_signature(out, m, proto); + fprintf(out, ";\n"); } free(proto); |
