1376 |
extern void sx_656c7365(environment *env) |
extern void sx_656c7365(environment *env) |
1377 |
{ |
{ |
1378 |
if(env->head==NULL || CDR(env->head)==NULL |
if(env->head==NULL || CDR(env->head)==NULL |
1379 |
|| CDR(CDR(env->head))==NULL || CDR(CDR(CDR(env->head)))==NULL) { |
|| CDR(CDR(env->head))==NULL || CDR(CDR(CDR(env->head)))==NULL |
1380 |
|
|| CDR(CDR(CDR(CDR(env->head))))==NULL) { |
1381 |
|
printerr("Too Few Arguments"); |
1382 |
|
env->err= 1; |
1383 |
|
return; |
1384 |
|
} |
1385 |
|
|
1386 |
|
if(CAR(CDR(env->head))->type!=symb |
1387 |
|
|| strcmp(CAR(CDR(env->head))->content.sym->id, "then")!=0 |
1388 |
|
|| CAR(CDR(CDR(CDR(env->head))))->type!=symb |
1389 |
|
|| strcmp(CAR(CDR(CDR(CDR(env->head))))->content.sym->id, "if")!=0) { |
1390 |
|
printerr("Bad Argument Type"); |
1391 |
|
env->err= 2; |
1392 |
|
return; |
1393 |
|
} |
1394 |
|
|
1395 |
|
swap(env); toss(env); rot(env); toss(env); |
1396 |
|
ifelse(env); |
1397 |
|
} |
1398 |
|
|
1399 |
|
extern void then(environment *env) |
1400 |
|
{ |
1401 |
|
if(env->head==NULL || CDR(env->head)==NULL |
1402 |
|
|| CDR(CDR(env->head))==NULL) { |
1403 |
printerr("Too Few Arguments"); |
printerr("Too Few Arguments"); |
1404 |
env->err= 1; |
env->err= 1; |
1405 |
return; |
return; |
1413 |
} |
} |
1414 |
|
|
1415 |
swap(env); toss(env); |
swap(env); toss(env); |
1416 |
ifelse(env); |
sx_6966(env); |
1417 |
} |
} |
1418 |
|
|
1419 |
/* "while" */ |
/* "while" */ |