| 467 |
printf("\"%s\"", (char*)CAR(stack_head)->content.ptr); |
printf("\"%s\"", (char*)CAR(stack_head)->content.ptr); |
| 468 |
break; |
break; |
| 469 |
case symb: |
case symb: |
| 470 |
printf("%s", ((symbol *)(CAR(stack_head)->content.ptr))->id); |
printf("%s", CAR(stack_head)->content.sym->id); |
| 471 |
break; |
break; |
| 472 |
case func: |
case func: |
| 473 |
printf("#<function %p>", (funcp)(CAR(stack_head)->content.ptr)); |
printf("#<function %p>", (funcp)(CAR(stack_head)->content.ptr)); |
| 594 |
return; |
return; |
| 595 |
} |
} |
| 596 |
|
|
| 597 |
val= ((symbol *)(CAR(env->head)->content.ptr))->val; |
val= CAR(env->head)->content.sym->val; |
| 598 |
if(val == NULL){ |
if(val == NULL){ |
| 599 |
printerr("Unbound Variable"); |
printerr("Unbound Variable"); |
| 600 |
env->err= 3; |
env->err= 3; |
| 655 |
push_val(env, CAR(iterator)); |
push_val(env, CAR(iterator)); |
| 656 |
|
|
| 657 |
if(CAR(env->head)->type==symb |
if(CAR(env->head)->type==symb |
| 658 |
&& (((symbol*)(CAR(env->head)->content.ptr))->id[0]==';')) { |
&& CAR(env->head)->content.sym->id[0]==';') { |
| 659 |
toss(env); |
toss(env); |
| 660 |
if(env->err) return; |
if(env->err) return; |
| 661 |
|
|
| 717 |
iterator= env->head; |
iterator= env->head; |
| 718 |
if(iterator==NULL |
if(iterator==NULL |
| 719 |
|| (CAR(iterator)->type==symb |
|| (CAR(iterator)->type==symb |
| 720 |
&& ((symbol*)(CAR(iterator)->content.ptr))->id[0]=='[')) { |
&& CAR(iterator)->content.sym->id[0]=='[')) { |
| 721 |
temp= NULL; |
temp= NULL; |
| 722 |
toss(env); |
toss(env); |
| 723 |
} else { |
} else { |
| 724 |
/* Search for first delimiter */ |
/* Search for first delimiter */ |
| 725 |
while(CDR(iterator)!=NULL |
while(CDR(iterator)!=NULL |
| 726 |
&& (CAR(CDR(iterator))->type!=symb |
&& (CAR(CDR(iterator))->type!=symb |
| 727 |
|| ((symbol*)(CAR(CDR(iterator))->content.ptr))->id[0]!='[')) |
|| CAR(CDR(iterator))->content.sym->id[0]!='[')) |
| 728 |
iterator= CDR(iterator); |
iterator= CDR(iterator); |
| 729 |
|
|
| 730 |
/* Extract list */ |
/* Extract list */ |
| 940 |
return; |
return; |
| 941 |
} |
} |
| 942 |
|
|
| 943 |
sym_id= ((symbol*)(CAR(stack_head)->content.ptr))->id; |
sym_id= CAR(stack_head)->content.sym->id; |
| 944 |
toss(env); |
toss(env); |
| 945 |
|
|
| 946 |
return forget_sym(hash(env->symbols, sym_id)); |
return forget_sym(hash(env->symbols, sym_id)); |
| 1013 |
return EXIT_SUCCESS; /* EOF */ |
return EXIT_SUCCESS; /* EOF */ |
| 1014 |
} else if(myenv.head!=NULL |
} else if(myenv.head!=NULL |
| 1015 |
&& CAR(myenv.head)->type==symb |
&& CAR(myenv.head)->type==symb |
| 1016 |
&& ((symbol*)(CAR(myenv.head)->content.ptr))->id[0] |
&& CAR(myenv.head)->content.sym->id[0] |
| 1017 |
==';') { |
==';') { |
| 1018 |
toss(&myenv); /* No error check in main */ |
toss(&myenv); /* No error check in main */ |
| 1019 |
eval(&myenv); |
eval(&myenv); |
| 1488 |
push_val(env, CAR(iterator)); |
push_val(env, CAR(iterator)); |
| 1489 |
push_val(env, loop); |
push_val(env, loop); |
| 1490 |
eval(env); if(env->err) return; |
eval(env); if(env->err) return; |
| 1491 |
if (CDR(iterator)->type == tcons){ |
if (iterator->type == tcons){ |
| 1492 |
iterator= CDR(iterator); |
iterator= CDR(iterator); |
| 1493 |
} else { |
} else { |
| 1494 |
printerr("Bad Argument Type"); /* Improper list */ |
printerr("Bad Argument Type"); /* Improper list */ |
| 1537 |
|
|
| 1538 |
if(iterator==NULL |
if(iterator==NULL |
| 1539 |
|| (CAR(iterator)->type==symb |
|| (CAR(iterator)->type==symb |
| 1540 |
&& ((symbol*)(CAR(iterator)->content.ptr))->id[0]=='[')) { |
&& CAR(iterator)->content.sym->id[0]=='[')) { |
| 1541 |
temp= NULL; |
temp= NULL; |
| 1542 |
toss(env); |
toss(env); |
| 1543 |
} else { |
} else { |
| 1544 |
/* Search for first delimiter */ |
/* Search for first delimiter */ |
| 1545 |
while(CDR(iterator)!=NULL |
while(CDR(iterator)!=NULL |
| 1546 |
&& (CAR(CDR(iterator))->type!=symb |
&& (CAR(CDR(iterator))->type!=symb |
| 1547 |
|| ((symbol*)(CAR(CDR(iterator))->content.ptr))->id[0] |
|| CAR(CDR(iterator))->content.sym->id[0]!='[')) |
|
!='[')) |
|
| 1548 |
iterator= CDR(iterator); |
iterator= CDR(iterator); |
| 1549 |
|
|
| 1550 |
/* Extract list */ |
/* Extract list */ |