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 |
/* Return copy of a value */ |
/* Return copy of a value */ |
987 |
value *copy_val(value *old_value){ |
value *copy_val(value *old_value){ |
988 |
stackitem *old_item, *new_item, *prev_item; |
stackitem *old_item, *new_item, *prev_item; |