add pic_env struct
This commit is contained in:
+11
-3
@@ -1,6 +1,13 @@
|
||||
#ifndef PROC_H__
|
||||
#define PROC_H__
|
||||
|
||||
struct pic_env {
|
||||
PIC_OBJECT_HEADER
|
||||
pic_value *values;
|
||||
int numcv;
|
||||
struct pic_env *up;
|
||||
};
|
||||
|
||||
struct pic_proc {
|
||||
PIC_OBJECT_HEADER
|
||||
bool cfunc_p;
|
||||
@@ -8,14 +15,15 @@ struct pic_proc {
|
||||
pic_func_t cfunc;
|
||||
struct pic_irep *irep;
|
||||
} u;
|
||||
struct pic_env *env;
|
||||
pic_value aux;
|
||||
};
|
||||
|
||||
#define pic_proc_ptr(o) ((struct pic_proc *)o.u.data)
|
||||
#define pic_proc_ptr(o) ((struct pic_proc *)(o).u.data)
|
||||
|
||||
#define pic_proc_cfunc_p(o) (pic_proc_ptr(o)->cfunc_p)
|
||||
|
||||
struct pic_proc *pic_proc_new(pic_state *, struct pic_irep *irep);
|
||||
struct pic_proc *pic_proc_new_cfunc(pic_state *, pic_func_t cfunc, pic_value aux);
|
||||
struct pic_proc *pic_proc_new(pic_state *, struct pic_irep *, struct pic_env *);
|
||||
struct pic_proc *pic_proc_new_cfunc(pic_state *, pic_func_t, pic_value);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -31,7 +31,8 @@ enum pic_tt {
|
||||
PIC_TT_SYMBOL,
|
||||
PIC_TT_PROC,
|
||||
PIC_TT_PORT,
|
||||
PIC_TT_STRING
|
||||
PIC_TT_STRING,
|
||||
PIC_TT_ENV
|
||||
};
|
||||
|
||||
#define PIC_OBJECT_HEADER \
|
||||
|
||||
Reference in New Issue
Block a user