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

Diff of /stack/stack.c

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

revision 1.59 by teddy, Fri Feb 8 04:58:23 2002 UTC revision 1.61 by teddy, Fri Feb 8 05:37:54 2002 UTC
# Line 961  extern void sx_2b(environment *env) { Line 961  extern void sx_2b(environment *env) {
961    push_int(&(env->head), a+b);    push_int(&(env->head), a+b);
962  }  }
963    
964    /* - */
965    extern void sx_2d(environment *env) {
966      int a;
967    
968      if((env->head)==NULL || env->head->next==NULL) {
969        printerr("Too Few Arguments");
970        env->err=1;
971        return;
972      }
973      
974      if(env->head->item->type!=integer
975         || env->head->next->item->type!=integer) {
976        printerr("Bad Argument Type");
977        env->err=2;
978        return;
979      }
980      a=env->head->item->content.val;
981      toss(env);
982      if(env->err) return;
983      env->head->item->content.val -= a;
984    }
985    
986    /* > */
987    extern void sx_3e(environment *env) {
988      int a;
989    
990      if((env->head)==NULL || env->head->next==NULL) {
991        printerr("Too Few Arguments");
992        env->err=1;
993        return;
994      }
995      
996      if(env->head->item->type!=integer
997         || env->head->next->item->type!=integer) {
998        printerr("Bad Argument Type");
999        env->err=2;
1000        return;
1001      }
1002      a=env->head->item->content.val;
1003      toss(env);
1004      if(env->err) return;
1005      env->head->item->content.val = (env->head->item->content.val > a);
1006    }
1007    
1008  /* Return copy of a value */  /* Return copy of a value */
1009  value *copy_val(value *old_value){  value *copy_val(value *old_value){
1010    stackitem *old_item, *new_item, *prev_item;    stackitem *old_item, *new_item, *prev_item;

Legend:
Removed from v.1.59  
changed lines
  Added in v.1.61

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26