(&mut self, op: &Operator, left: &Expr, right: &Expr)
| 1046 | } |
| 1047 | |
| 1048 | fn emit_binary(&mut self, op: &Operator, left: &Expr, right: &Expr) -> EmitResult { |
| 1049 | let mut out = emitter(); |
| 1050 | let left = self.emit_local(left, &mut out); |
| 1051 | let right = self.emit_local(right, &mut out); |
| 1052 | let op = match op { |
| 1053 | Operator::Add => "+", |
| 1054 | Operator::Sub => "-", |
| 1055 | Operator::Mul => "*", |
| 1056 | Operator::Div => "/", |
| 1057 | Operator::Lt => "<", |
| 1058 | Operator::Le => "<=", |
| 1059 | Operator::Gt => ">", |
| 1060 | Operator::Ge => ">=", |
| 1061 | Operator::Rem => "%", |
| 1062 | Operator::Eq => "==", |
| 1063 | Operator::Ne => "!=", |
| 1064 | Operator::And => "&&", |
| 1065 | Operator::Or => "||", |
| 1066 | }; |
| 1067 | |
| 1068 | return out.emit_value(format!("{left} {op} {right}")); |
| 1069 | } |
| 1070 | |
| 1071 | fn emit_unary(&mut self, op: &UnOp, expr: &Expr) -> EmitResult { |
| 1072 | let mut out = emitter(); |
no test coverage detected