4 int psi_calc_num_exp(num_exp
*exp
, impl_val
*strct
, impl_val
*res
);
6 static inline zend_long
psi_long_num_exp(num_exp
*exp
, impl_val
*strct
) {
9 switch (psi_calc_num_exp(exp
, strct
, &val
)) {
10 case PSI_T_UINT8
: return val
.u8
;
11 case PSI_T_UINT16
: return val
.u16
;
12 case PSI_T_UINT32
: return val
.u32
;
13 case PSI_T_UINT64
: return val
.u64
; /* FIXME */
14 case PSI_T_INT8
: return val
.i8
;
15 case PSI_T_INT16
: return val
.i16
;
16 case PSI_T_INT32
: return val
.i32
;
17 case PSI_T_INT64
: return val
.i64
;
18 case PSI_T_FLOAT
: return val
.fval
;
19 case PSI_T_DOUBLE
: return val
.dval
;
20 EMPTY_SWITCH_DEFAULT_CASE();
25 int psi_calc_add(int t1
, impl_val
*v1
, int t2
, impl_val
*v2
, impl_val
*res
);
26 int psi_calc_sub(int t1
, impl_val
*v1
, int t2
, impl_val
*v2
, impl_val
*res
);
27 int psi_calc_mul(int t1
, impl_val
*v1
, int t2
, impl_val
*v2
, impl_val
*res
);
28 int psi_calc_div(int t1
, impl_val
*v1
, int t2
, impl_val
*v2
, impl_val
*res
);