From 70f9691e5426057e6386ab42d7f3e25fa16c8a26 Mon Sep 17 00:00:00 2001 From: wangmengc Date: Thu, 23 May 2024 14:06:10 +0800 Subject: [PATCH] add expshift function --- utshell-0.5/r_expr/src/lib.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/utshell-0.5/r_expr/src/lib.rs b/utshell-0.5/r_expr/src/lib.rs index 1e6960b9..9c2cbeec 100644 --- a/utshell-0.5/r_expr/src/lib.rs +++ b/utshell-0.5/r_expr/src/lib.rs @@ -613,6 +613,24 @@ unsafe extern "C" fn exp3() -> intmax_t { return val1; } +#[no_mangle] +unsafe extern "C" fn expshift() -> intmax_t { + let mut val1: intmax_t = 0; + let mut val2: intmax_t = 0; + val1 = exp3(); + while curtok == LSH as libc::c_int || curtok == RSH as libc::c_int { + let mut op: libc::c_int = curtok; + readtok(); + val2 = exp3(); + if op == LSH as libc::c_int { + val1 = val1 << val2; + } else { + val1 = val1 >> val2; + } + lasttok = NUM as libc::c_int; + } + return val1; +} -- Gitee