skopy/lib/include/fun.h

31 lines
641 B
C
Raw Normal View History

#ifndef SK_FUN_H
#define SK_FUN_H
#include "commons.h"
2024-04-05 16:31:11 +00:00
struct closure
{
int id;
struct value* value;
};
struct fun
{
struct prog* prog;
2024-04-05 16:31:11 +00:00
struct sym* sym;
struct vec closures;
};
2024-04-05 16:31:11 +00:00
void closure_init(struct closure* self, int id, struct value* value);
struct closure* closure_new_clone(struct closure* self);
void closure_free(struct closure* self);
void fun_init(struct fun* self, struct prog* new_prog);
void fun_free(struct fun* self);
struct fun* fun_new_clone(struct fun* self);
2024-04-05 16:31:11 +00:00
void fun_capture(struct fun* self, int id, struct value* value);
struct closure* fun_try_get_closure(struct fun* self, int id);
#endif