Files
fz-lang/src/compiler/generator/gen_reference.c
T

25 lines
615 B
C

#include <common/fzl_extern.h>
#include <common/fzl_types.h>
#include <compiler/fzl_token.h>
#include <compiler/internals/gen.h>
#include <stdbool.h>
#include <stdio.h>
// Type reference (convert T => T*)
gen_res_t gen_reference(fzl_gen_t *gen, fzl_node_t *node)
{
if (!gen || !node)
return gen_error;
char *refname = (char *)node->token->value;
ssize_t slot = gen_resolve_extern_type(gen, refname);
if (slot == -1)
return gen_error;
type_buf.kind = FZL_EXTERN_KIND_REF;
type_buf.ref_target =
(fzl_extern_type_ref_t){.is_primitive = false, .type_slot = slot};
return gen_ok_null;
}