aboutsummaryrefslogtreecommitdiffhomepage
path: root/parse.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-11 15:19:18 +0900
committernsfisis <nsfisis@gmail.com>2025-08-15 10:06:21 +0900
commit9c12de31ab03385cea3b7bc78582ef4fdb9b22cc (patch)
tree715f6d472dbf110d864806039f743977c6c90ba7 /parse.c
parentfd7d82869eb42d086174ec02938b49e4f233c319 (diff)
downloadducc-9c12de31ab03385cea3b7bc78582ef4fdb9b22cc.tar.gz
ducc-9c12de31ab03385cea3b7bc78582ef4fdb9b22cc.tar.zst
ducc-9c12de31ab03385cea3b7bc78582ef4fdb9b22cc.zip
feat: grow dynamic array
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/parse.c b/parse.c
index 820d3e2..c0d60dc 100644
--- a/parse.c
+++ b/parse.c
@@ -841,7 +841,7 @@ AstNode* parse_expr_stmt(Parser* p) {
}
AstNode* parse_block_stmt(Parser* p) {
- AstNode* list = ast_new_list(1024);
+ AstNode* list = ast_new_list(4);
expect(p, TokenKind_brace_l);
while (peek_token(p)->kind != TokenKind_brace_r) {
AstNode* stmt = parse_stmt(p);
@@ -1015,7 +1015,7 @@ AstNode* parse_struct_member(Parser* p) {
}
AstNode* parse_struct_members(Parser* p) {
- AstNode* list = ast_new_list(32);
+ AstNode* list = ast_new_list(4);
while (peek_token(p)->kind != TokenKind_brace_r) {
AstNode* member = parse_struct_member(p);
ast_append(list, member);
@@ -1065,7 +1065,7 @@ AstNode* parse_union_member(Parser* p) {
}
AstNode* parse_union_members(Parser* p) {
- AstNode* list = ast_new_list(16);
+ AstNode* list = ast_new_list(4);
while (peek_token(p)->kind != TokenKind_brace_r) {
AstNode* member = parse_union_member(p);
ast_append(list, member);
@@ -1113,7 +1113,7 @@ AstNode* parse_enum_member(Parser* p) {
AstNode* parse_enum_members(Parser* p) {
int next_value = 0;
- AstNode* list = ast_new_list(256);
+ AstNode* list = ast_new_list(16);
while (peek_token(p)->kind != TokenKind_brace_r) {
AstNode* member = parse_enum_member(p);
member->node_int_value = next_value;
@@ -1205,8 +1205,8 @@ AstNode* parse_toplevel(Parser* p) {
Program* parse(Token* tokens) {
Parser* p = parser_new(tokens);
- AstNode* funcs = ast_new_list(1024);
- AstNode* vars = ast_new_list(1024);
+ AstNode* funcs = ast_new_list(32);
+ AstNode* vars = ast_new_list(16);
while (eof(p)) {
AstNode* n = parse_toplevel(p);
if (n->kind == AstNodeKind_func_def) {