/[cvs]/stack/stack.c
ViewVC logotype

Diff of /stack/stack.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.108 by masse, Tue Mar 12 22:03:21 2002 UTC revision 1.109 by masse, Thu Mar 14 10:39:11 2002 UTC
# Line 1376  extern void ifelse(environment *env) Line 1376  extern void ifelse(environment *env)
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;
# Line 1390  extern void sx_656c7365(environment *env Line 1413  extern void sx_656c7365(environment *env
1413    }    }
1414    
1415    swap(env); toss(env);    swap(env); toss(env);
1416    ifelse(env);    sx_6966(env);
1417  }  }
1418    
1419  /* "while" */  /* "while" */

Legend:
Removed from v.1.108  
changed lines
  Added in v.1.109

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26