feat: 命名参数 draw_rect(width: 10, height: 20)

This commit is contained in:
2026-06-05 20:54:58 +08:00
parent c6e492662e
commit 6b6925b2b8
9 changed files with 272 additions and 24 deletions
+4 -3
View File
@@ -110,9 +110,9 @@ AstNode* ast_make_unary(void* alloc, BinaryOp op, AstNode* operand, SourceLoc lo
return n;
}
AstNode* ast_make_call(void* alloc, const char* name, AstNode** args, size_t count, SourceLoc loc) {
AstNode* ast_make_call(void* alloc, const char* name, AstNode** args, const char** arg_names, size_t count, SourceLoc loc) {
NEW(alloc, AST_CALL_EXPR);
n->as.call.name = name; n->as.call.args = args; n->as.call.arg_count = count;
n->as.call.name = name; n->as.call.args = args; n->as.call.arg_names = arg_names; n->as.call.arg_count = count;
return n;
}
@@ -242,11 +242,12 @@ AstNode* ast_make_impl_block(void* alloc, const char* struct_name, AstNode** met
}
AstNode* ast_make_method_call(void* alloc, AstNode* receiver, const char* method,
AstNode** args, size_t count, SourceLoc loc) {
AstNode** args, const char** arg_names, size_t count, SourceLoc loc) {
NEW(alloc, AST_METHOD_CALL);
n->as.method_call.receiver = receiver;
n->as.method_call.method_name = method;
n->as.method_call.args = args;
n->as.method_call.arg_names = arg_names;
n->as.method_call.arg_count = count;
return n;
}