1use crate::span::Span;
4
5#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7pub enum BinOp {
8 Add,
9 Sub,
10 Mul,
11 Div,
12 Rem,
13 And,
14 Or,
15 Xor,
16 LShift,
17 RShift,
18 URShift,
19 Eq,
20 Ne,
21 Lt,
22 Gt,
23 Le,
24 Ge,
25 LAnd,
26 LOr,
27}
28
29#[derive(Debug, Clone, PartialEq, Eq, Hash)]
31pub struct BinOpToken {
32 pub op: BinOp,
33 pub span: Span,
34}
35
36#[derive(Debug, Clone, PartialEq, Eq, Hash)]
38pub enum AssignOp {
39 Assign,
40 AddAssign,
41 SubAssign,
42 MulAssign,
43 DivAssign,
44 AndAssign,
45 OrAssign,
46 XorAssign,
47 RemAssign,
48 LShiftAssign,
49 RShiftAssign,
50 URShiftAssign,
51}
52
53#[derive(Debug, Clone, PartialEq, Eq, Hash)]
55pub struct AssignOpToken {
56 pub op: AssignOp,
57 pub span: Span,
58}
59
60#[derive(Debug, Clone, PartialEq, Eq, Hash)]
62pub enum UnaryOp {
63 Neg,
64 Not,
65 BitNot,
66 PreInc,
67 PreDec,
68 PostInc,
69 PostDec,
70}