From 53e9cb25778f5dbb36e5cb8d567ec0f46104bd30 Mon Sep 17 00:00:00 2001 From: yenru0 Date: Tue, 25 Nov 2025 23:35:10 +0900 Subject: [PATCH] fix ast_util print for newly added node kind --- src/ast_util.c | 42 ++++++++++++++++++++++++++++++++++++++++-- test2.cval | 4 +++- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/ast_util.c b/src/ast_util.c index 799b596..44e390c 100644 --- a/src/ast_util.c +++ b/src/ast_util.c @@ -56,11 +56,47 @@ void ast_node_print(ASTNode *node, int depth) { case NODE_TYPE_STAR: printf("NODE_TYPE_STAR"); break; + case NODE_EXPR: + printf("NODE_EXPR"); + break; case NODE_ID: printf("NODE_ID"); break; - default: - printf("UNKNOWN_NODE"); + case NODE_NUM: + printf("NODE_NUM"); + break; + case NODE_STR: + printf("NODE_STR"); + break; + case NODE_STAR: + printf("NODE_STAR"); + break; + case NODE_ANDREF: + printf("NODE_ANDREF"); + break; + case NODE_PARAM_LIST: + printf("NODE_PARAM_LIST"); + break; + case NODE_PARAM: + printf("NODE_PARAM"); + break; + case NODE_LAMBDA: + printf("NODE_LAMBDA"); + break; + case NODE_COMPOUND: + printf("NODE_COMPOUND"); + break; + case NODE_STMT_RETURN: + printf("NODE_STMT_RETURN"); + break; + case NODE_STMT_EXPR: + printf("NODE_STMT_EXPR"); + break; + case NODE_STMT_SET: + printf("NODE_STMT_SET"); + break; + case NODE_STMT_IF: + printf("NODE_STMT_IF"); break; } @@ -110,6 +146,8 @@ ASTNode *ast_node_type_simple(Token tok_id) { ASTNode *ast_node_type_complex( Token tok_bracket, ASTNode *type_param, ASTNode *type_out) { ASTNode *node = ast_node_new(NODE_TYPE_COMPLEX, tok_bracket); + type_param->token = tok_bracket; + type_out->token = tok_bracket; ast_node_add_child(node, type_param); ast_node_add_child(node, type_out); return node; diff --git a/test2.cval b/test2.cval index 336e114..0cbbd59 100644 --- a/test2.cval +++ b/test2.cval @@ -4,4 +4,6 @@ val char* line; val size_t line get_line_ptr stdin line; -val char first *line; \ No newline at end of file +val char first *line; + +val [int [int->size_t]->size_t] functor; \ No newline at end of file