Skip to main content

react_compiler_ast/
operators.rs

1use 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}