mirror of
https://github.com/TheM1Stery/izanami.git
synced 2025-05-16 01:11:17 +00:00
Compare commits
No commits in common. "3cfde406d3821943a8819403eec3bf0aa851d4c5" and "be15364e3be07105310851f7800c3108b18831f5" have entirely different histories.
3cfde406d3
...
be15364e3b
@ -62,14 +62,12 @@ fn binary(
|
||||
(Minus, Number(left), Number(right)) => Ok(Number(left - right)),
|
||||
(Plus, Number(left), Number(right)) => Ok(Number(left + right)),
|
||||
(Plus, String(left), String(right)) => Ok(String(format!("{left}{right}"))),
|
||||
(Plus, String(left), Number(right)) => Ok(String(format!("{left}{right}"))),
|
||||
(Plus, Number(left), String(right)) => Ok(String(format!("{left}{right}"))),
|
||||
(Slash, Number(left), Number(right)) => Ok(Number(left / right)),
|
||||
(Star, Number(left), Number(right)) => Ok(Number(left * right)),
|
||||
/* comma operator discard the left operand, so we just return the evaluation of the right operand */
|
||||
(Comma, _,_) => Ok(right.clone()),
|
||||
(Greater | GreaterEqual | Less | LessEqual | Minus | Slash | Star, _, _) => Err(RuntimeError::new(op, "Operands must be numbers")),
|
||||
(Plus, _, _) => Err(RuntimeError::new(op, "Operands must be two numbers or two strings")),
|
||||
/* comma operator discard the left operand, so we just return the evaluation of the right operand */
|
||||
|
||||
_ => unreachable!("Shouldn't happen. Expr::Binary for interpret. Some case is a binary operation that wasn't matched")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user