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