add pic_resolve
This commit is contained in:
parent
3021e7f2b9
commit
7ec81ab1d5
|
@ -110,7 +110,7 @@ internal_equal_p(pic_state *pic, pic_value x, pic_value y, size_t depth, xhash *
|
|||
id1 = pic_id_ptr(x);
|
||||
id2 = pic_id_ptr(y);
|
||||
|
||||
return pic_eq_p(pic_expand(pic, id1->var, id1->env), pic_expand(pic, id2->var, id2->env));
|
||||
return pic_resolve(pic, id1->var, id1->env) == pic_resolve(pic, id2->var, id2->env);
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
|
|
|
@ -24,8 +24,8 @@ lookup(pic_state PIC_UNUSED(*pic), pic_value var, struct pic_env *env)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static pic_sym *
|
||||
resolve(pic_state *pic, pic_value var, struct pic_env *env)
|
||||
pic_sym *
|
||||
pic_resolve(pic_state *pic, pic_value var, struct pic_env *env)
|
||||
{
|
||||
pic_sym *uid;
|
||||
|
||||
|
@ -72,7 +72,7 @@ static pic_value expand_lambda(pic_state *, pic_value, struct pic_env *);
|
|||
static pic_value
|
||||
expand_var(pic_state *pic, pic_value var, struct pic_env *env)
|
||||
{
|
||||
return pic_obj_value(resolve(pic, var, env));
|
||||
return pic_obj_value(pic_resolve(pic, var, env));
|
||||
}
|
||||
|
||||
static pic_value
|
||||
|
@ -275,7 +275,7 @@ expand_node(pic_state *pic, pic_value expr, struct pic_env *env, pic_value defer
|
|||
if (pic_var_p(pic_car(pic, expr))) {
|
||||
pic_sym *functor;
|
||||
|
||||
functor = resolve(pic, pic_car(pic, expr), env);
|
||||
functor = pic_resolve(pic, pic_car(pic, expr), env);
|
||||
|
||||
if (functor == pic->uDEFINE_MACRO) {
|
||||
return expand_defmacro(pic, expr, env);
|
||||
|
|
|
@ -217,7 +217,6 @@ pic_value pic_apply4(pic_state *, struct pic_proc *, pic_value, pic_value, pic_v
|
|||
pic_value pic_apply5(pic_state *, struct pic_proc *, pic_value, pic_value, pic_value, pic_value, pic_value);
|
||||
pic_value pic_apply_trampoline(pic_state *, struct pic_proc *, pic_value);
|
||||
pic_value pic_eval(pic_state *, pic_value, struct pic_env *);
|
||||
pic_value pic_expand(pic_state *, pic_value, struct pic_env *);
|
||||
struct pic_proc *pic_compile(pic_state *, pic_value, struct pic_env *);
|
||||
|
||||
struct pic_lib *pic_make_library(pic_state *, pic_value);
|
||||
|
|
|
@ -78,6 +78,8 @@ struct pic_irep {
|
|||
size_t clen, ilen, plen, slen;
|
||||
};
|
||||
|
||||
pic_sym *pic_resolve(pic_state *, pic_value, struct pic_env *);
|
||||
pic_value pic_expand(pic_state *, pic_value, struct pic_env *);
|
||||
pic_value pic_analyze(pic_state *, pic_value);
|
||||
struct pic_irep *pic_codegen(pic_state *, pic_value);
|
||||
|
||||
|
|
Loading…
Reference in New Issue