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; |