--- stack/stack.c 2002/02/09 00:20:02 1.65 +++ stack/stack.c 2002/02/09 00:40:45 1.66 @@ -1231,3 +1231,34 @@ free_val(loop); free_val(foo); } + +/* 'to' */ +extern void to(environment *env) { + int i, start, ending; + + if((env->head)==NULL || env->head->next==NULL) { + printerr("Too Few Arguments"); + env->err=1; + return; + } + + if(env->head->item->type!=integer + || env->head->next->item->type!=integer) { + printerr("Bad Argument Type"); + env->err=2; + return; + } + + ending= env->head->item->content.val; + toss(env); if(env->err) return; + start= env->head->item->content.val; + toss(env); if(env->err) return; + + push_sym(env, "["); + + for(i= start; i<= ending; i++) + push_int(&(env->head), i); + + push_sym(env, "["); + pack(env); if(env->err) return; +}