1#[derive(Debug, Copy, Clone)]
2pub enum UnOp {
3 Not,
4 Neg,
5}
6#[derive(Debug, Copy, Clone)]
7pub enum BinOp {
8 Add,
9 Sub,
10 Mul,
11 Div,
12 Rem,
13 And,
14 Or,
15 BitXor,
16 BitAnd,
17 BitOr,
18 Shl,
19 Shr,
20 Eq,
21 Lt,
22 Le,
23 Ne,
24 Ge,
25 Gt,
26}
27#[derive(Debug, Copy, Clone)]
28pub enum AssignOp {
29 Assign,
30 AddAssign,
31 SubAssign,
32 MulAssign,
33 DivAssign,
34 RemAssign,
35 BitXorAssign,
36 BitAndAssign,
37 BitOrAssign,
38 ShlAssign,
39 ShrAssign,
40}
41#[derive(Debug, Clone)]
42pub enum Value {
43 Integer(i32),
45 Unary(UnOp, Box<Value>),
47 Binary(BinOp, Box<Value>, Box<Value>),
49 Paren(Vec<Value>),
51 FuncLike(String, Vec<Value>),
53 Ident(String),
55 Assign(AssignOp, String, Box<Value>),
57 #[allow(unused)]
59 Native(String),
60}