aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ast.h
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.h
parentc780cbb6acd0e0526f2d305138190392bdc8cdd7 (diff)
downloadducc-a5bff442c1f09792ff7291652103048688c3a128.tar.gz
ducc-a5bff442c1f09792ff7291652103048688c3a128.tar.zst
ducc-a5bff442c1f09792ff7291652103048688c3a128.zip
feat: implement array initializer
Diffstat (limited to 'src/ast.h')
-rw-r--r--src/ast.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ast.h b/src/ast.h
index 498e6c3..3f9eb82 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -88,6 +88,7 @@ typedef enum {
AstNodeKind_unknown,
AstNodeKind_nop,
+ AstNodeKind_array_initializer,
AstNodeKind_assign_expr,
AstNodeKind_binary_expr,
AstNodeKind_break_stmt,
@@ -310,6 +311,10 @@ typedef struct {
} TypedefDeclNode;
typedef struct {
+ AstNode* list;
+} ArrayInitializerNode;
+
+typedef struct {
AstNode* items;
int len;
int cap;
@@ -354,6 +359,7 @@ struct AstNode {
GvarNode* gvar;
StructMemberNode* struct_member;
TypedefDeclNode* typedef_decl;
+ ArrayInitializerNode* array_initializer;
ListNode* list;
} as;
};
@@ -407,5 +413,6 @@ AstNode* ast_new_typedef_decl(const char* name, Type* ty);
AstNode* ast_new_struct_def(const char* name);
AstNode* ast_new_union_def(const char* name);
AstNode* ast_new_enum_def(const char* name);
+AstNode* ast_new_array_initializer(AstNode* list);
#endif