diff options
| author | Carson Fleming <cflems@cflems.net> | 2026-07-18 23:38:59 -0700 |
|---|---|---|
| committer | Carson Fleming <cflems@cflems.net> | 2026-07-18 23:38:59 -0700 |
| commit | 1e712cf04567c48100526f9a3a0f796497168268 (patch) | |
| tree | 28a1676d36620500578d1a386d8d0b976637ce9f /parser.c | |
| parent | feb1cac139ca5aa2ba76ac6a0a318bced03d8638 (diff) | |
| download | ccc-1e712cf04567c48100526f9a3a0f796497168268.tar.gz | |
type system surely
Diffstat (limited to 'parser.c')
| -rw-r--r-- | parser.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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, }); |
