pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:5763:    /* function(mixed:int) */    ADD_EFUN2("`!",f_not,tFuncV(tMix,tVoid,tInt01),    OPT_TRY_OPTIMIZE,optimize_not,generate_not);      #define CMP_TYPE "!function(!(object|mixed)...:mixed)&function(mixed...:int(0..1))|function(int|float...:int(0..1))|function(string...:int(0..1))|function(type|program,type|program,type|program...: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);    + #if 0 +  /* Old */    ADD_EFUN2("`+",f_add,    tOr7(tIfnot(tFuncV(tNone,tNot(tObj),tMix),    tOr(tFuncArg(tSetvar(2,tObj), tFindLFun(tVar(2), "`+")),    tFuncV(tNot(tObj), tMix, tMix))),    tOr3(tFuncV(tIntPos,tIntPos,tIntPos),    tFuncV(tIntNeg,tIntNeg,tIntNeg),    tIfnot(tFuncV(tNone, tNot(tIntNeg), tMix),    tIfnot(tFuncV(tNone, tNot(tIntPos), tMix),    tFuncV(tInt, tInt, tInt)))),    tIfnot(tFuncV(tNone, tNot(tFlt), tMix),
pike.git/src/operators.c:5785:    tFuncV(tOr3(tNStr(tSetvar(0, tInt)),tInt,tFlt),    tOr3(tNStr(tSetvar(1, tInt)),tInt,tFlt),    tNStr(tOr(tVar(0),tVar(1))))),    tFuncV(tArr(tSetvar(0,tMix)), tArr(tSetvar(1,tMix)),    tArr(tOr(tVar(0),tVar(1)))),    tFuncV(tSetvar(0,tMapping),tSetvar(1,tMapping),    tOr(tVar(0),tVar(1))),    tFuncV(tSetvar(0,tMultiset),tSetvar(1,tMultiset),    tOr(tVar(0),tVar(1)))),    OPT_TRY_OPTIMIZE,optimize_binary,generate_sum); + #define TRANS_NAME "ADD" + #else + #define TRANS_NAME "`+" + #endif    -  +  /* Transitive */ +  ADD_EFUN2(TRANS_NAME, f_add, +  tTransitive(tFunc(tSetvar(0, tOr7(tObj, tInt, tFloat, tStr, +  tArr(tMix), tMapping, tMultiset)), +  tVar(0)), +  tOr7(tOr(tFuncArg(tSetvar(1, tObj), +  tFindLFun(tVar(1), "`+")), +  tFunc(tNot(tObj) tObj, tMix)), +  tOr3(tFunc(tIntPos tIntPos, tIntPos), +  tFunc(tIntNeg tIntNeg, tIntNeg), +  tIfnot(tFuncV(tNone, tNot(tIntNeg), tMix), +  tIfnot(tFuncV(tNone, tNot(tIntPos), tMix), +  tFunc(tInt tInt, tInt)))), +  tOr(tFunc(tFloat tOr(tFloat, tInt), tFloat), +  tFunc(tOr(tFloat, tInt) tFloat, tFloat)), +  tOr3(tFunc(tSetvar(2, tStr) tSetvar(3, tStr), +  tOr(tVar(2), tVar(3))), +  tFunc(tSetvar(2, tStr) tOr(tInt, tFloat), +  tOr(tVar(2), tStr7)), +  tFunc(tOr(tInt, tFloat) tSetvar(3, tStr), +  tOr(tStr7, tVar(3)))), +  tFunc(tArr(tSetvar(0,tMix)) tArr(tSetvar(1,tMix)), +  tArr(tOr(tVar(0), tVar(1)))), +  tFunc(tSetvar(0, tMapping) tSetvar(1, tMapping), +  tOr(tVar(0), tVar(1))), +  tFunc(tSetvar(0, tMultiset) tSetvar(1, tMultiset), +  tOr(tVar(0), tVar(1))))), +  OPT_TRY_OPTIMIZE,optimize_binary,generate_sum); +     ADD_EFUN2("`-",f_minus,    tOr7(tIfnot(tFuncV(tNone,tNot(tObj),tMix),    tOr(tFuncArg(tSetvar(2,tObj), tFindLFun(tVar(2), "`-")),    tFuncV(tNot(tObj), tMix, tMix))),    tOr4(tFuncV(tIntNeg,tIntPos,tIntNeg),    tFuncV(tIntPos,tIntNeg,tIntPos),    tIfnot(tFuncV(tNot(tIntPos), tNot(tIntPos), tMix),    tFuncV(tInt tInt, tInt, tInt)),    tIfnot(tFuncV(tNot(tIntNeg), tNot(tIntNeg), tMix),    tFuncV(tInt tInt, tInt, tInt))),