Branch: Tag:

1999-12-11

1999-12-11 19:28:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed some types.

Rev: src/operators.c:1.72

6:   /**/   #include "global.h"   #include <math.h> - RCSID("$Id: operators.c,v 1.71 1999/11/22 14:17:49 grubba Exp $"); + RCSID("$Id: operators.c,v 1.72 1999/12/11 19:28:43 grubba Exp $");   #include "interpret.h"   #include "svalue.h"   #include "multiset.h"
2166:    /* function(mixed:int) */    add_efun2("`!",f_not,"function(mixed:int(0..1))",OPT_TRY_OPTIMIZE,optimize_not,generate_not);    - #define CMP_TYPE "!function(!object...:mixed)&function(mixed...:int(0..1))|function(int|float...:int(0..1))|function(string...:int(0..1))" + #define CMP_TYPE "!function(!(object|mixed)...:mixed)&function(mixed...:int(0..1))|function(int|float...:int(0..1))|function(string...:int(0..1))"    add_efun2("`<", f_lt,CMP_TYPE,OPT_TRY_OPTIMIZE,0,generate_comparison);    add_efun2("`<=",f_le,CMP_TYPE,OPT_TRY_OPTIMIZE,0,generate_comparison);    add_efun2("`>", f_gt,CMP_TYPE,OPT_TRY_OPTIMIZE,0,generate_comparison);    add_efun2("`>=",f_ge,CMP_TYPE,OPT_TRY_OPTIMIZE,0,generate_comparison);       ADD_EFUN2("`+",f_add, -  tOr7(tIfnot(tFuncV(tNone,tNot(tObj),tMix),tFunction), +  tOr7(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction),    tFuncV(tInt,tInt,tInt),    tIfnot(tFuncV(tInt,tInt,tMix),    tFuncV(tOr(tInt,tFlt),tOr(tInt,tFlt),tFlt)),
2189:    OPT_TRY_OPTIMIZE,optimize_binary,generate_sum);       ADD_EFUN2("`-",f_minus, -  tOr7(tIfnot(tFuncV(tNone,tNot(tObj),tMix),tFunction), +  tOr7(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction),    tFuncV(tInt,tInt,tInt),    tIfnot(tFuncV(tInt,tInt,tMix),    tFuncV(tOr(tInt,tFlt),tOr(tInt,tFlt),tFlt)),
2221:    "function(array(0=mixed),int:array(0))|"    "function(string,int:string) */    ADD_EFUN2("`*",f_multiply, -  tOr7(tIfnot(tFuncV(tNone,tNot(tObj),tMix),tFunction), +  tOr7(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction),    tFunc(tArr(tArr(tSetvar(1,tMix)))    tArr(tSetvar(1,tMix)),tArr(tVar(1))),    tFuncV(tInt,tInt,tInt),
2237:    "!function(int...:mixed)&function(float|int...:float)|"    "function(array(0=mixed),array|int|float...:array(array(0)))|"    "function(string,string|int|float...:array(string)) */ -  ADD_EFUN2("`/",f_divide,tOr5(tIfnot(tFuncV(tNone,tNot(tObj),tMix),tFunction),tFuncV(tInt,tInt,tInt),tIfnot(tFuncV(tNone,tInt,tMix),tFuncV(tNone,tOr(tFlt,tInt),tFlt)),tFuncV(tArr(tSetvar(0,tMix)),tOr3(tArray,tInt,tFlt),tArr(tArr(tVar(0)))),tFuncV(tStr,tOr3(tStr,tInt,tFlt),tArr(tStr))), +  ADD_EFUN2("`/",f_divide,tOr5(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction),tFuncV(tInt,tInt,tInt),tIfnot(tFuncV(tNone,tInt,tMix),tFuncV(tNone,tOr(tFlt,tInt),tFlt)),tFuncV(tArr(tSetvar(0,tMix)),tOr3(tArray,tInt,tFlt),tArr(tArr(tVar(0)))),tFuncV(tStr,tOr3(tStr,tInt,tFlt),tArr(tStr))),    OPT_TRY_OPTIMIZE,0,generate_divide);       /* function(mixed,object:mixed)|"