scarf_syntax/expressions/
operators.rs

1// =======================================================================
2// operators.rs
3// =======================================================================
4// AST Nodes from 1800-2023 A.8.6
5
6use crate::*;
7
8#[derive(Clone, Debug, PartialEq)]
9pub enum UnaryOperator<'a> {
10    Plus(Metadata<'a>),
11    Minus(Metadata<'a>),
12    Exclamation(Metadata<'a>),
13    Tilde(Metadata<'a>),
14    Amp(Metadata<'a>),
15    TildeAmp(Metadata<'a>),
16    Pipe(Metadata<'a>),
17    TildePipe(Metadata<'a>),
18    Caret(Metadata<'a>),
19    TildeCaret(Metadata<'a>),
20    CaretTilde(Metadata<'a>),
21}
22
23#[derive(Clone, Debug, PartialEq)]
24pub enum BinaryOperator<'a> {
25    Plus(Metadata<'a>),
26    Minus(Metadata<'a>),
27    Star(Metadata<'a>),
28    Slash(Metadata<'a>),
29    Percent(Metadata<'a>),
30    EqEq(Metadata<'a>),
31    ExclEq(Metadata<'a>),
32    EqEqEq(Metadata<'a>),
33    ExclEqEq(Metadata<'a>),
34    EqEqQuest(Metadata<'a>),
35    ExclEqQuest(Metadata<'a>),
36    AmpAmp(Metadata<'a>),
37    PipePipe(Metadata<'a>),
38    StarStar(Metadata<'a>),
39    Lt(Metadata<'a>),
40    LtEq(Metadata<'a>),
41    Gt(Metadata<'a>),
42    GtEq(Metadata<'a>),
43    Amp(Metadata<'a>),
44    Pipe(Metadata<'a>),
45    Caret(Metadata<'a>),
46    CaretTilde(Metadata<'a>),
47    TildeCaret(Metadata<'a>),
48    GtGt(Metadata<'a>),
49    LtLt(Metadata<'a>),
50    GtGtGt(Metadata<'a>),
51    LtLtLt(Metadata<'a>),
52    MinusGt(Metadata<'a>),
53    LtMinusGt(Metadata<'a>),
54}
55
56#[derive(Clone, Debug, PartialEq)]
57pub enum IncOrDecOperator<'a> {
58    PlusPlus(Metadata<'a>),
59    MinusMinus(Metadata<'a>),
60}
61
62#[derive(Clone, Debug, PartialEq)]
63pub enum UnaryModulePathOperator<'a> {
64    Exclamation(Metadata<'a>),
65    Tilde(Metadata<'a>),
66    Amp(Metadata<'a>),
67    TildeAmp(Metadata<'a>),
68    Pipe(Metadata<'a>),
69    TildePipe(Metadata<'a>),
70    Caret(Metadata<'a>),
71    TildeCaret(Metadata<'a>),
72    CaretTilde(Metadata<'a>),
73}
74
75#[derive(Clone, Debug, PartialEq)]
76pub enum BinaryModulePathOperator<'a> {
77    EqEq(Metadata<'a>),
78    ExclEq(Metadata<'a>),
79    AmpAmp(Metadata<'a>),
80    PipePipe(Metadata<'a>),
81    Amp(Metadata<'a>),
82    Pipe(Metadata<'a>),
83    Caret(Metadata<'a>),
84    CaretTilde(Metadata<'a>),
85    TildeCaret(Metadata<'a>),
86}