Skip to main content

scarf_syntax/expressions/
operators.rs

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