static inline token_t psi_calc_bool_or(token_t t1, impl_val *v1, token_t t2, impl_val *v2, impl_val *res) { switch (t1) { $v1) : ?> #if HAVE_ case PSI_T_: if (v1->) goto return_true; break; #endif default: assert(0); break; } switch (t2) { $v2) : ?> #if HAVE_ case PSI_T_: if (v2->) goto return_true; break; #endif default: assert(0); break; } res->u8 = 0; return PSI_T_UINT8; return_true: res->u8 = 1; return PSI_T_UINT8; } static inline token_t psi_calc_bool_and(token_t t1, impl_val *v1, token_t t2, impl_val *v2, impl_val *res) { switch (t1) { $v1) : ?> #if HAVE_ case PSI_T_: if (!v1->) goto return_false; break; #endif default: assert(0); break; } switch (t2) { $v2) : ?> #if HAVE_ case PSI_T_: if (!v2->) goto return_false; break; #endif default: assert(0); break; } res->u8 = 1; return PSI_T_UINT8; return_false: res->u8 = 0; return PSI_T_UINT8; }