diff --git a/utshell-0.5/r_expr/src/lib.rs b/utshell-0.5/r_expr/src/lib.rs index c02d2162cf3c8e8548955479eef1adf118292fba..ba586c795ce5938f7686b6f6c286ba8a15b2cd9b 100644 --- a/utshell-0.5/r_expr/src/lib.rs +++ b/utshell-0.5/r_expr/src/lib.rs @@ -677,3 +677,32 @@ unsafe extern "C" fn exp5() -> intmax_t { } return val1; } + +#[no_mangle] +unsafe extern "C" fn expband() -> intmax_t { + let mut val1: intmax_t = 0; + let mut val2: intmax_t = 0; + val1 = exp5(); + while curtok == '&' as i32 { + readtok(); + val2 = exp5(); + val1 = val1 & val2; + lasttok = NUM as libc::c_int; + } + return val1; +} + +#[no_mangle] +unsafe extern "C" fn expbxor() -> intmax_t { + let mut val1: intmax_t = 0; + let mut val2: intmax_t = 0; + val1 = expband(); + while curtok == '^' as i32 { + readtok(); + val2 = expband(); + val1 = val1 ^ val2; + lasttok = NUM as libc::c_int; + } + return val1; +} +