aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ast.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-01-24 12:29:17 +0900
committernsfisis <nsfisis@gmail.com>2026-01-24 12:32:39 +0900
commita5bff442c1f09792ff7291652103048688c3a128 (patch)
treed30d94201236471591b2af495f8ad41ae6a4cef5 /src/ast.c
parentc780cbb6acd0e0526f2d305138190392bdc8cdd7 (diff)
downloadducc-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.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ast.c b/src/ast.c
index 7c7df72..c2e1aba 100644
--- a/src/ast.c
+++ b/src/ast.c
@@ -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;