diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-01-24 12:29:17 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-01-24 12:32:39 +0900 |
| commit | a5bff442c1f09792ff7291652103048688c3a128 (patch) | |
| tree | d30d94201236471591b2af495f8ad41ae6a4cef5 /src/ast.c | |
| parent | c780cbb6acd0e0526f2d305138190392bdc8cdd7 (diff) | |
| download | ducc-a5bff442c1f09792ff7291652103048688c3a128.tar.gz ducc-a5bff442c1f09792ff7291652103048688c3a128.tar.zst ducc-a5bff442c1f09792ff7291652103048688c3a128.zip | |
feat: implement array initializer
Diffstat (limited to 'src/ast.c')
| -rw-r--r-- | src/ast.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -192,6 +192,8 @@ const char* astnode_kind_stringify(AstNodeKind k) { return "unknown"; case AstNodeKind_nop: return "nop"; + case AstNodeKind_array_initializer: + return "array_initializer"; case AstNodeKind_assign_expr: return "assign_expr"; case AstNodeKind_binary_expr: @@ -631,6 +633,13 @@ AstNode* ast_new_enum_def(const char* name) { return e; } +AstNode* ast_new_array_initializer(AstNode* list) { + AstNode* e = ast_new(AstNodeKind_array_initializer); + e->as.array_initializer = calloc(1, sizeof(ArrayInitializerNode)); + e->as.array_initializer->list = list; + return e; +} + int type_sizeof_struct(Type* ty) { int next_offset = 0; int struct_align = 0; |
