react_compiler_ast/
operators.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub enum BinaryOperator {
5 #[serde(rename = "+")]
6 Add,
7 #[serde(rename = "-")]
8 Sub,
9 #[serde(rename = "*")]
10 Mul,
11 #[serde(rename = "/")]
12 Div,
13 #[serde(rename = "%")]
14 Rem,
15 #[serde(rename = "**")]
16 Exp,
17 #[serde(rename = "==")]
18 Eq,
19 #[serde(rename = "===")]
20 StrictEq,
21 #[serde(rename = "!=")]
22 Neq,
23 #[serde(rename = "!==")]
24 StrictNeq,
25 #[serde(rename = "<")]
26 Lt,
27 #[serde(rename = "<=")]
28 Lte,
29 #[serde(rename = ">")]
30 Gt,
31 #[serde(rename = ">=")]
32 Gte,
33 #[serde(rename = "<<")]
34 Shl,
35 #[serde(rename = ">>")]
36 Shr,
37 #[serde(rename = ">>>")]
38 UShr,
39 #[serde(rename = "|")]
40 BitOr,
41 #[serde(rename = "^")]
42 BitXor,
43 #[serde(rename = "&")]
44 BitAnd,
45 #[serde(rename = "in")]
46 In,
47 #[serde(rename = "instanceof")]
48 Instanceof,
49 #[serde(rename = "|>")]
50 Pipeline,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
54pub enum LogicalOperator {
55 #[serde(rename = "||")]
56 Or,
57 #[serde(rename = "&&")]
58 And,
59 #[serde(rename = "??")]
60 NullishCoalescing,
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize)]
64pub enum UnaryOperator {
65 #[serde(rename = "-")]
66 Neg,
67 #[serde(rename = "+")]
68 Plus,
69 #[serde(rename = "!")]
70 Not,
71 #[serde(rename = "~")]
72 BitNot,
73 #[serde(rename = "typeof")]
74 TypeOf,
75 #[serde(rename = "void")]
76 Void,
77 #[serde(rename = "delete")]
78 Delete,
79 #[serde(rename = "throw")]
80 Throw,
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
84pub enum UpdateOperator {
85 #[serde(rename = "++")]
86 Increment,
87 #[serde(rename = "--")]
88 Decrement,
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
92pub enum AssignmentOperator {
93 #[serde(rename = "=")]
94 Assign,
95 #[serde(rename = "+=")]
96 AddAssign,
97 #[serde(rename = "-=")]
98 SubAssign,
99 #[serde(rename = "*=")]
100 MulAssign,
101 #[serde(rename = "/=")]
102 DivAssign,
103 #[serde(rename = "%=")]
104 RemAssign,
105 #[serde(rename = "**=")]
106 ExpAssign,
107 #[serde(rename = "<<=")]
108 ShlAssign,
109 #[serde(rename = ">>=")]
110 ShrAssign,
111 #[serde(rename = ">>>=")]
112 UShrAssign,
113 #[serde(rename = "|=")]
114 BitOrAssign,
115 #[serde(rename = "^=")]
116 BitXorAssign,
117 #[serde(rename = "&=")]
118 BitAndAssign,
119 #[serde(rename = "||=")]
120 OrAssign,
121 #[serde(rename = "&&=")]
122 AndAssign,
123 #[serde(rename = "??=")]
124 NullishAssign,
125}