Added placeholders for And + Or
and used placeholders for -, * and / in interpret
This commit is contained in:
parent
c66616ee2c
commit
1c8722ba99
|
@ -142,15 +142,15 @@ impl ExecEnv {
|
|||
let rhs = self.eval_expr(rhs)?;
|
||||
match kind {
|
||||
Add => lhs + rhs,
|
||||
Subtract => todo!(),
|
||||
Multiply => todo!(),
|
||||
Divide => todo!(),
|
||||
Subtract => lhs - rhs,
|
||||
Multiply => lhs * rhs,
|
||||
Divide => lhs / rhs,
|
||||
Greater => Value::Bool(lhs > rhs),
|
||||
Less => Value::Bool(lhs < rhs),
|
||||
Equal => Value::Bool(lhs == rhs),
|
||||
NotEqual => Value::Bool(lhs != rhs),
|
||||
And => todo!(),
|
||||
Or => todo!(),
|
||||
And => lhs & rhs,
|
||||
Or => lhs | rhs,
|
||||
}
|
||||
}
|
||||
Not(expr) => Bool(!self.eval_expr(expr)?.into_bool()),
|
||||
|
|
|
@ -392,6 +392,22 @@ impl PartialOrd for Value {
|
|||
}
|
||||
}
|
||||
|
||||
impl ops::BitAnd for Value {
|
||||
type Output = Value;
|
||||
|
||||
fn bitand(self, rhs: Self) -> Self::Output {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
impl ops::BitOr for Value {
|
||||
type Output = Value;
|
||||
|
||||
fn bitor(self, rhs: Self) -> Self::Output {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
impl Display for Value {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
|
|
Loading…
Reference in a new issue