MCPcopy Create free account
hub / github.com/borgo-lang/borgo / emit_binary

Method emit_binary

compiler/src/codegen.rs:1048–1069  ·  view source on GitHub ↗
(&mut self, op: &Operator, left: &Expr, right: &Expr)

Source from the content-addressed store, hash-verified

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();

Callers 1

emit_exprMethod · 0.80

Calls 3

emitterFunction · 0.85
emit_localMethod · 0.80
emit_valueMethod · 0.80

Tested by

no test coverage detected