fix ast_util print for newly added node kind

This commit is contained in:
2025-11-25 23:35:10 +09:00
parent 9c94663045
commit 53e9cb2577
2 changed files with 43 additions and 3 deletions

View File

@@ -56,11 +56,47 @@ void ast_node_print(ASTNode *node, int depth) {
case NODE_TYPE_STAR: case NODE_TYPE_STAR:
printf("NODE_TYPE_STAR"); printf("NODE_TYPE_STAR");
break; break;
case NODE_EXPR:
printf("NODE_EXPR");
break;
case NODE_ID: case NODE_ID:
printf("NODE_ID"); printf("NODE_ID");
break; break;
default: case NODE_NUM:
printf("UNKNOWN_NODE"); 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; break;
} }
@@ -110,6 +146,8 @@ ASTNode *ast_node_type_simple(Token tok_id) {
ASTNode *ast_node_type_complex( ASTNode *ast_node_type_complex(
Token tok_bracket, ASTNode *type_param, ASTNode *type_out) { Token tok_bracket, ASTNode *type_param, ASTNode *type_out) {
ASTNode *node = ast_node_new(NODE_TYPE_COMPLEX, tok_bracket); 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_param);
ast_node_add_child(node, type_out); ast_node_add_child(node, type_out);
return node; return node;

View File

@@ -4,4 +4,6 @@ val char* line;
val size_t line get_line_ptr stdin line; val size_t line get_line_ptr stdin line;
val char first *line; val char first *line;
val [int [int->size_t]->size_t] functor;