Added placeholders for And + Or

and used placeholders for -, * and / in interpret
pull/2/head
ondra05 2021-08-28 23:59:04 +02:00
parent 5daa009361
commit b315a8414a
2 changed files with 21 additions and 5 deletions

View File

@ -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()),

View File

@ -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 {