pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
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 <math.h> #include "global.h"
-
RCSID("$Id: operators.c,v 1.
27
1998/
02
/
27
19
:
20
:
11
hubbe Exp $");
+
RCSID("$Id: operators.c,v 1.
28
1998/
03
/
01
11
:
40
:
46
hubbe 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:1741:
add_efun2("`==",f_eq,"function(mixed...:int)",OPT_TRY_OPTIMIZE,0,generate_comparison); add_efun2("`!=",f_ne,"function(mixed...:int)",OPT_TRY_OPTIMIZE,0,generate_comparison); add_efun2("`!",f_not,"function(mixed:int)",OPT_TRY_OPTIMIZE,0,generate_not); #define CMP_TYPE "!function(!object...:mixed)&function(mixed...:int)|function(int|float...:int)|function(string...:int)" 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,"!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(array...:
array
)|function(mapping...:mapping)|function(multiset...:
multiset
)",OPT_TRY_OPTIMIZE,optimize_binary,generate_sum);
+
add_efun2("`+",f_add,
+
"!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
)",
+
OPT_TRY_OPTIMIZE,optimize_binary,generate_sum);
add_efun2("`-",f_minus,"!function(!object...:mixed)&function(mixed...:mixed)|function(int:int)|function(float:float)|function(array,array:array)|function(mapping,mapping:mapping)|function(multiset,multiset:multiset)|function(float|int,float:float)|function(float,int:float)|function(int,int:int)|function(string,string:string)",OPT_TRY_OPTIMIZE,0,generate_minus); #define LOG_TYPE "function(mixed,object...:mixed)|function(object,mixed...:mixed)|function(int...:int)|function(mapping...:mapping)|function(multiset...:multiset)|function(array...:array)|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); #define SHIFT_TYPE "function(object,mixed:mixed)|function(mixed,object:mixed)|function(int,int:int)" add_efun2("`<<",f_lsh,SHIFT_TYPE,OPT_TRY_OPTIMIZE,0,generate_lsh); add_efun2("`>>",f_rsh,SHIFT_TYPE,OPT_TRY_OPTIMIZE,0,generate_rsh); add_efun2("`*",f_multiply, "!function(!object...:mixed)&function(mixed...:mixed)|"
-
"function(array(array),array:
array
)|"
+
"function(array(
1=
array),
1=
array:
1
)|"
"function(int...:int)|" "!function(int...:mixed)&function(float|int...:float)|" "function(string*,string:string)|"
-
"function(array,int:
array
)|"
+
"function(
0=
array,int:
0
)|"
"function(string,int:string)", OPT_TRY_OPTIMIZE,optimize_binary,generate_multiply); add_efun2("`/",f_divide, "!function(!object...:mixed)&function(mixed...:mixed)|" "function(int,int...:int)|" "!function(int...:mixed)&function(float|int...:float)|"
-
"function(array,array|int|float...:array(
array
))|"
+
"function(
0=
array,array|int|float...:array(
0
))|"
"function(string,string|int|float...:array(string))", OPT_TRY_OPTIMIZE,0,generate_divide); add_efun2("`%",f_mod, "function(mixed,object:mixed)|" "function(object,mixed:mixed)|" "function(int,int:int)|" "function(string,int:string)|"
-
"function(array,int:
array
)|"
+
"function(
0=
array,int:
0
)|"
"!function(int,int:mixed)&function(int|float,int|float:float)" ,OPT_TRY_OPTIMIZE,0,generate_mod); add_efun2("`~",f_compl,"function(object:mixed)|function(int:int)|function(float:float)|function(string:string)",OPT_TRY_OPTIMIZE,0,generate_compl); add_efun2("sizeof", f_sizeof, "function(string|multiset|array|mapping|object:int)",0,0,generate_sizeof); add_efun2("`()",f_call_function,"function(mixed,mixed ...:mixed)",OPT_SIDE_EFFECT | OPT_EXTERNAL_DEPEND,0,generate_call_function); /* This one should be removed */ add_efun2("call_function",f_call_function,"function(mixed,mixed ...:mixed)",OPT_SIDE_EFFECT | OPT_EXTERNAL_DEPEND,0,generate_call_function); }