/[cvs]/stack/stack.c
ViewVC logotype

Diff of /stack/stack.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.133 by masse, Mon Aug 11 14:31:48 2003 UTC revision 1.134 by masse, Wed Aug 13 06:12:26 2003 UTC
# Line 585  void print_val(environment *env, value * Line 585  void print_val(environment *env, value *
585  extern void swap(environment *env)  extern void swap(environment *env)
586  {  {
587    value *temp= env->head;    value *temp= env->head;
588      
589    if(env->head->type == empty || CDR(env->head)->type == empty) {    switch(check_args(env, unknown, unknown, empty)) {
590      case 1:
591      printerr(env, "Too Few Arguments");      printerr(env, "Too Few Arguments");
     env->err=1;  
592      return;      return;
593      case 2:
594        printerr(env, "Bad Argument Type");
595        return;
596      default:
597        break;
598    }    }
599      
600    env->head= CDR(env->head);    env->head= CDR(env->head);
601    CDR(temp)= CDR(env->head);    CDR(temp)= CDR(env->head);
602    CDR(env->head)= temp;    CDR(env->head)= temp;
# Line 603  extern void rcl(environment *env) Line 608  extern void rcl(environment *env)
608  {  {
609    value *val;    value *val;
610    
611    if(env->head->type==empty) {    switch(check_args(env, symb, empty)) {
612      case 1:
613      printerr(env, "Too Few Arguments");      printerr(env, "Too Few Arguments");
     env->err= 1;  
614      return;      return;
615    }    case 2:
   
   if(CAR(env->head)->type!=symb) {  
616      printerr(env, "Bad Argument Type");      printerr(env, "Bad Argument Type");
     env->err= 2;  
617      return;      return;
618      default:
619        break;
620    }    }
621    
622    val= CAR(env->head)->content.sym->val;    val= CAR(env->head)->content.sym->val;
# Line 641  extern void eval(environment *env) Line 645  extern void eval(environment *env)
645    
646    gc_maybe(env);    gc_maybe(env);
647    
648    if(env->head->type==empty) {    switch(check_args(env, unknown, empty)) {
649      case 1:
650      printerr(env, "Too Few Arguments");      printerr(env, "Too Few Arguments");
     env->err= 1;  
651      return;      return;
652      case 2:
653        printerr(env, "Bad Argument Type");
654        return;
655      default:
656        break;
657    }    }
658    
659    switch(CAR(env->head)->type) {    switch(CAR(env->head)->type) {
# Line 759  int main(int argc, char **argv) Line 768  int main(int argc, char **argv)
768    }    }
769    
770    if(myenv.interactive)    if(myenv.interactive)
771      printf(start_message);      puts(start_message);
772    
773    while(1) {    while(1) {
774      if(myenv.in_string==NULL) {      if(myenv.in_string==NULL) {
# Line 854  extern void rev(environment *env) Line 863  extern void rev(environment *env)
863  {  {
864    value *old_head, *new_head, *item;    value *old_head, *new_head, *item;
865    
   if(env->head->type==empty) {  
     printerr(env, "Too Few Arguments");  
     env->err= 1;  
     return;  
   }  
   
866    if(CAR(env->head)->type==empty)    if(CAR(env->head)->type==empty)
867      return;                     /* Don't reverse an empty list */      return;                     /* Don't reverse an empty list */
868    
869    if(CAR(env->head)->type!=tcons) {    switch(check_args(env, tcons, empty)) {
870      case 1:
871        printerr(env, "Too Few Arguments");
872        return;
873      case 2:
874      printerr(env, "Bad Argument Type");      printerr(env, "Bad Argument Type");
     env->err= 2;  
875      return;      return;
876      default:
877        break;
878    }    }
879    
880    old_head= CAR(env->head);    old_head= CAR(env->head);

Legend:
Removed from v.1.133  
changed lines
  Added in v.1.134

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26