if(TAG(next) == WORD_TYPE)
{
env.w = (WORD*)UNTAG(next);
+ /* printf("EXECUTE %d\n",env.w->primitive); */
EXECUTE(env.w);
}
else
{
+ /* printf("DPUSH %d\n",type_of(next)); */
dpush(env.dt);
env.dt = next;
}
void primitive_getenv(void)
{
- FIXNUM e = untag_fixnum(env.dt);
+ FIXNUM e = to_fixnum(env.dt);
if(e < 0 || e >= USER_ENV)
range_error(F,e,USER_ENV);
env.dt = env.user[e];
void primitive_setenv(void)
{
- FIXNUM e = untag_fixnum(env.dt);
+ FIXNUM e = to_fixnum(env.dt);
CELL value = dpop();
if(e < 0 || e >= USER_ENV)
range_error(F,e,USER_ENV);
void primitive_exit(void)
{
- exit(untag_fixnum(env.dt));
+ exit(to_fixnum(env.dt));
}