protospec_build/ast/expression/
binary.rs1use super::*;
2
3#[derive(Clone, Serialize, Deserialize)]
4pub struct BinaryExpression {
5 pub op: BinaryOp,
6 pub left: Box<Expression>,
7 pub right: Box<Expression>,
8 pub span: Span,
9}
10impl_node!(BinaryExpression);
11
12#[derive(Clone, Copy, Serialize, Deserialize, PartialEq, Debug)]
13pub enum BinaryOp {
14 Lt,
15 Gt,
16 Lte,
17 Gte,
18 Eq,
19 Ne,
20 Or,
21 And,
22 BitOr,
23 BitAnd,
24 BitXor,
25 Shr,
26 Shl,
27 ShrSigned,
28 Add,
29 Sub,
30 Mul,
31 Div,
32 Mod,
33 Elvis,
34}