Branch: Tag:

1997-03-11

1997-03-11 03:36:42 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

fixed constants and code generator, F_EQ_OR now works

Rev: src/ChangeLog:1.85
Rev: src/docode.c:1.14
Rev: src/interpret.c:1.31
Rev: src/interpret.h:1.11
Rev: src/language.yacc:1.30
Rev: src/lex.c:1.18
Rev: src/lex.h:1.4
Rev: src/peep.c:1.8
Rev: src/peep.in:1.6
Rev: src/program.c:1.26
Rev: src/testsuite.in:1.35

4:   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: interpret.c,v 1.30 1997/03/09 09:11:11 hubbe Exp $"); + RCSID("$Id: interpret.c,v 1.31 1997/03/11 03:36:39 hubbe Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"
882:    break;       CASE(F_EQ_OR); -  if(is_eq(sp-2,sp-1)) +  if(!is_eq(sp-2,sp-1))    {    pop_n_elems(2);    pc+=sizeof(INT32);
893:    }    break;    +  CASE(F_EQ_AND); +  if(is_eq(sp-2,sp-1)) +  { +  pop_n_elems(2); +  pc+=sizeof(INT32); +  }else{ +  pop_n_elems(2); +  push_int(0); +  DOJUMP(); +  } +  break; +     CASE(F_CATCH);    if(o_catch(pc+sizeof(INT32)))    return; /* There was a return inside the evaluated code */