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

Diff of /stack/stack.c

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

revision 1.57 by masse, Fri Feb 8 03:10:30 2002 UTC revision 1.58 by masse, Fri Feb 8 03:45:00 2002 UTC
# Line 361  void print_h(stackitem *stack_head) Line 361  void print_h(stackitem *stack_head)
361      printf("%d", stack_head->item->content.val);      printf("%d", stack_head->item->content.val);
362      break;      break;
363    case string:    case string:
364      printf("\"%s\"", (char*)stack_head->item->content.ptr);      printf("%s", (char*)stack_head->item->content.ptr);
365      break;      break;
366    case symb:    case symb:
367      printf("%s", ((symbol *)(stack_head->item->content.ptr))->id);      printf("%s", ((symbol *)(stack_head->item->content.ptr))->id);
# Line 1088  extern void ifelse(environment *env) { Line 1088  extern void ifelse(environment *env) {
1088    
1089    eval(env);    eval(env);
1090  }  }
1091    
1092    /* while */
1093    extern void sx_7768696c65(environment *env) {
1094    
1095      int truth;
1096    
1097      if((env->head)==NULL || env->head->next==NULL) {
1098        printerr("Too Few Arguments");
1099        env->err=1;
1100        return;
1101      }
1102    
1103      do {
1104        swap(env); if(env->err) return;
1105        dup(env); if(env->err) return;
1106        eval(env); if(env->err) return;
1107        
1108        if(env->head->item->type != integer) {
1109          printerr("Bad Argument Type");
1110          env->err=2;
1111          return;
1112        }
1113        
1114        truth= env->head->item->content.val;
1115        
1116        toss(env); if(env->err) return;
1117        swap(env); if(env->err) return;
1118        
1119        if(truth) {
1120          dup(env);
1121          eval(env);
1122        } else {
1123          toss(env);
1124          toss(env);
1125        }
1126      
1127      } while(truth);
1128    }

Legend:
Removed from v.1.57  
changed lines
  Added in v.1.58

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26