From 1e712cf04567c48100526f9a3a0f796497168268 Mon Sep 17 00:00:00 2001 From: Carson Fleming Date: Sat, 18 Jul 2026 23:38:59 -0700 Subject: type system surely --- parser.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'parser.c') diff --git a/parser.c b/parser.c index b094780..14bbbf5 100644 --- a/parser.c +++ b/parser.c @@ -79,13 +79,15 @@ static void parse_type_ref(struct type_ref_node* p_node) { PARSER_PANIC("unknown type name: %s", tok.data.ident); free(tok.data.ident); - p_node->def_ref = type_def; + p_node->type = (struct type) { + .raw_type = type_def, + .ptr_level = 0, + }; peek_or_panic(); - p_node->ptr_level = 0; while (tok.type == TK_STAR) { expect(TK_STAR); - p_node->ptr_level++; + p_node->type.ptr_level++; peek_or_panic(); } } @@ -278,6 +280,7 @@ static void parse_var_decl(struct var_decl_node* p_node) { expect(TK_IDENT); p_node->def_ref = scope_define_var(scope, (struct var_def) { + .type = &p_node->type.type, .name = tok.data.ident, .loc.type = STO_UNRESOLVED, }); -- cgit v1.2.3