aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ast.c
diff options
context:
space:
mode:
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;