factorio_codegen/generator/
operator.rs1use factorio_ir::operator::Operator;
2
3use crate::LuaGenerator;
4
5impl LuaGenerator {
6 pub(crate) const fn generate_operator(operator: Operator) -> &'static str {
8 match operator {
9 Operator::Add => "+",
10 Operator::Sub => "-",
11 Operator::Mul => "*",
12 Operator::Div => "/",
13 Operator::Mod => "%",
14 Operator::Eq => "==",
15 Operator::Ne => "~=",
16 Operator::Lt => "<",
17 Operator::Le => "<=",
18 Operator::Gt => ">",
19 Operator::Ge => ">=",
20 Operator::And => "and",
21 Operator::Or => "or",
22 }
23 }
24
25 pub(crate) const fn operator_precedence(operator: Operator) -> u8 {
27 match operator {
28 Operator::Mul | Operator::Div | Operator::Mod => 20,
29 Operator::Add | Operator::Sub => 19,
30 Operator::Eq
31 | Operator::Ne
32 | Operator::Lt
33 | Operator::Le
34 | Operator::Gt
35 | Operator::Ge => 10,
36 Operator::And => 5,
37 Operator::Or => 4,
38 }
39 }
40}