pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   /**/   #include "global.h"   #include <math.h> - RCSID("$Id: operators.c,v 1.52 1999/03/26 23:40:57 grubba Exp $"); + RCSID("$Id: operators.c,v 1.53 1999/05/25 13:32:12 mirar Exp $");   #include "interpret.h"   #include "svalue.h"   #include "multiset.h"   #include "mapping.h"   #include "array.h"   #include "stralloc.h"   #include "opcodes.h"   #include "operators.h"   #include "language.h"   #include "pike_memory.h"
pike.git/src/operators.c:2034:    add_efun2("`>", f_gt,CMP_TYPE,OPT_TRY_OPTIMIZE,0,generate_comparison);    add_efun2("`>=",f_ge,CMP_TYPE,OPT_TRY_OPTIMIZE,0,generate_comparison);       /* !function(!object...:mixed)&function(mixed...:mixed)|"    "function(int...:int)|"    "!function(int...:mixed)&function(int|float...:float)|"    "!function(int|float...:mixed)&function(string|int|float...:string)|"    "function(0=array...:0)|"    "function(mapping(1=mixed:2=mixed)...:mapping(1:2))|"    "function(3=multiset...:3) */ -  ADD_EFUN2("`+",f_add,tOr7(tIfnot(tFuncV(,tNot(tObj),tMix),tFunction),tFuncV(,tInt,tInt),tIfnot(tFuncV(,tInt,tMix),tFuncV(,tOr(tInt,tFlt),tFlt)),tIfnot(tFuncV(,tOr(tInt,tFlt),tMix),tFuncV(,tOr3(tStr,tInt,tFlt),tStr)),tFuncV(,tSetvar(0,tArray),tVar(0)),tFuncV(,tMap(tSetvar(1,tMix),tSetvar(2,tMix)),tMap(tVar(1),tVar(2))),tFuncV(,tSetvar(3,tMultiset),tVar(3))), +  ADD_EFUN2("`+",f_add, +  tOr7(tIfnot(tFuncV(,tNot(tObj),tMix),tFunction), +  tFuncV(,tInt,tInt), +  tIfnot(tFuncV(,tInt,tMix), +  tFuncV(,tOr(tInt,tFlt),tFlt)), +  tIfnot(tFuncV(,tOr(tInt,tFlt),tMix), +  tFuncV(,tOr3(tStr,tInt,tFlt),tStr)), +  tFuncV(,tSetvar(0,tArray),tVar(0)), +  tFuncV(,tMap(tSetvar(1,tMix), +  tSetvar(2,tMix)),tMap(tVar(1),tVar(2))), +  tFuncV(,tSetvar(3,tMultiset),tVar(3))),    OPT_TRY_OPTIMIZE,optimize_binary,generate_sum);    -  /* !function(!object...:mixed)&function(mixed...:mixed)|" -  "function(int:int)|" -  "function(float:float)|" -  "function(array(0=mixed),array:array(0))|" -  "function(mapping(1=mixed:2=mixed),mapping:mapping(1:2))|" -  "function(multiset(3=mixed),multiset:multiset(3))|" -  "function(float|int,float:float)|" -  "function(float,int:float)|" -  "function(int,int:int)|" -  "function(string,string:string) */ -  ADD_EFUN2("`-",f_minus,tOr7(tIfnot(tFuncV(,tNot(tObj),tMix),tFunction),tFunc(tInt,tInt),tFunc(tFlt,tFlt),tFunc(tArr(tSetvar(0,tMix)) tArray,tArr(tVar(0))),tFunc(tMap(tSetvar(1,tMix),tSetvar(2,tMix)) tMapping,tMap(tVar(1),tVar(2))),tFunc(tSet(tSetvar(3,tMix)) tMultiset,tSet(tVar(3))),tOr4(tFunc(tOr(tFlt,tInt) tFlt,tFlt),tFunc(tFlt tInt,tFlt),tFunc(tInt tInt,tInt),tFunc(tStr tStr,tStr))), +  ADD_EFUN2("`-",f_minus, +  tOr7(tIfnot(tFuncV(,tNot(tObj),tMix),tFunction), +  tFuncV(tInt,tInt,tInt), +  tIfnot(tFuncV(tInt,tInt,tMix), +  tFuncV(tOr(tInt,tFlt),tOr(tInt,tFlt),tFlt)), +  tFuncV(tArr(tSetvar(0,tMix)),tArray,tArr(tVar(0))), +  tFuncV(tMap(tSetvar(1,tMix),tSetvar(2,tMix)), +  tMapping,tMap(tVar(1),tVar(2))), +  tFunc(tSet(tSetvar(3,tMix)) tMultiset,tSet(tVar(3))), +  tFuncV(tStr,tStr,tStr)),    OPT_TRY_OPTIMIZE,0,generate_minus);      #define LOG_TYPE "function(mixed,object...:mixed)|function(object,mixed...:mixed)|function(int...:int)|function(mapping(0=mixed:1=mixed)...:mapping(0:1))|function(multiset(2=mixed)...:multiset(2))|function(array(3=mixed)...:array(3))|function(string...:string)"       add_efun2("`&",f_and,LOG_TYPE,OPT_TRY_OPTIMIZE,optimize_binary,generate_and);       add_efun2("`|",f_or,LOG_TYPE,OPT_TRY_OPTIMIZE,optimize_binary,generate_or);       add_efun2("`^",f_xor,LOG_TYPE,OPT_TRY_OPTIMIZE,optimize_binary,generate_xor);