Compare commits

..

2 Commits

Author SHA1 Message Date
7c08e8da4d Fixed depends. 2025-09-12 16:33:45 -04:00
fdf526750d Cleaned up more fdef stuff. 2025-09-12 16:32:58 -04:00
2 changed files with 4 additions and 11 deletions

View File

@@ -70,8 +70,9 @@ AST* exec_call(AST* ast, Scope* parent) {
switch (exp->type) {
case AST_TYPE_BIF:
ASTBIFData bifdata = exp->data;
return bifdata(calldata->argc, calldata->argv, parent);
return ((ASTBIFData) exp->data)(
calldata->argc, calldata->argv, parent
);
case AST_TYPE_LAMBDA:
return exec_lambda(calldata->argc, calldata->argv, exp, parent);
default:
@@ -114,15 +115,6 @@ AST* exec_vref(AST* ast, Scope* parent) {
return found;
}
AST* exec_fdef(AST* ast, Scope* parent) {
ast->scope = scope_init(parent);
ASTFDefData* fdef = (ASTFDefData*)ast->data;
AST* val = ast;
char* key = fdef->name;
scope_add(parent, key, val);
return fdef->body; // Function definitions return function body.
}
AST* exec_lambda(size_t argc, AST** argv, AST* exp, Scope* parent) {
Scope* callscope = scope_init(parent);
ASTLambdaData* lambda = (ASTLambdaData*)exp->data;

View File

@@ -2,6 +2,7 @@
#define GC_H
#include <stdlib.h>
#include <stdbool.h>
// The type a GC can refer to.
typedef enum {