Skip to main content

lutra_compiler/pr/
ops.rs

1#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash, strum::Display)]
2pub enum UnOp {
3    #[strum(to_string = "-")]
4    Neg,
5    #[strum(to_string = "+")]
6    Pos,
7    #[strum(to_string = "!")]
8    Not,
9}
10
11#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash, strum::Display)]
12pub enum BinOp {
13    #[strum(to_string = "*")]
14    Mul,
15    #[strum(to_string = "//")]
16    DivInt,
17    #[strum(to_string = "/")]
18    DivFloat,
19    #[strum(to_string = "%")]
20    Mod,
21    #[strum(to_string = "**")]
22    Pow,
23    #[strum(to_string = "+")]
24    Add,
25    #[strum(to_string = "-")]
26    Sub,
27    #[strum(to_string = "==")]
28    Eq,
29    #[strum(to_string = "!=")]
30    Ne,
31    #[strum(to_string = ">")]
32    Gt,
33    #[strum(to_string = "<")]
34    Lt,
35    #[strum(to_string = ">=")]
36    Gte,
37    #[strum(to_string = "<=")]
38    Lte,
39    #[strum(to_string = "~=")]
40    RegexSearch,
41    #[strum(to_string = "&&")]
42    And,
43    #[strum(to_string = "||")]
44    Or,
45    #[strum(to_string = "??")]
46    Coalesce,
47    #[strum(to_string = "|")]
48    Pipe,
49}