From cdddf2422553f1f21c8d2c57cd382b8362dc80fb Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 7 Feb 2026 15:42:00 +0900 Subject: feat: support function calls via function pointers The two-pass parsing of function pointer declaration is referenced from chibicc: https://github.com/rui314/chibicc --- src/ast.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/ast.h') diff --git a/src/ast.h b/src/ast.h index 3f9eb82..fe2f720 100644 --- a/src/ast.h +++ b/src/ast.h @@ -188,7 +188,7 @@ typedef struct { } RefExprNode; typedef struct { - const char* name; + AstNode* func; AstNode* args; } FuncCallNode; @@ -387,7 +387,7 @@ AstNode* ast_new_cast_expr(AstNode* operand, Type* result_ty); AstNode* ast_new_logical_expr(int op, AstNode* lhs, AstNode* rhs); AstNode* ast_new_cond_expr(AstNode* cond, AstNode* then, AstNode* else_); AstNode* ast_new_str_expr(int idx, Type* ty); -AstNode* ast_new_func_call(const char* name, Type* ty); +AstNode* ast_new_func_call(AstNode* func, AstNode* args); AstNode* ast_new_func(const char* name, Type* ty); AstNode* ast_new_gvar(const char* name, Type* ty); AstNode* ast_new_lvar(const char* name, int stack_offset, Type* ty); -- cgit v1.3-1-g0d28