1 2 3 4 5 6 7 8 9 10 11 12
use super::{BinOp, Expr, ExprKind};
pub fn new_binop(left: Option<Expr>, op: BinOp, right: Option<Expr>) -> Option<Expr> {
match (left, right) {
(Some(left), Some(right)) => {
let left = Box::new(left);
let right = Box::new(right);
Some(Expr::from(ExprKind::Binary { left, op, right }))
}
(left, right) => left.or(right),
}
}