add pic_env struct

This commit is contained in:
Yuichi Nishiwaki
2013-10-24 02:02:07 +09:00
parent f854e225c8
commit bd851318d1
7 changed files with 44 additions and 8 deletions
+11 -3
View File
@@ -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
+2 -1
View File
@@ -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 \