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