zen_parser/
ast.rs

1use rust_decimal::Decimal;
2
3#[derive(Debug, PartialEq, Clone)]
4pub enum Node<'a> {
5    Null,
6    Bool(bool),
7    Number(Decimal),
8    String(&'a str),
9    Pointer,
10    Array(&'a [&'a Node<'a>]),
11    Identifier(&'a str),
12    Closure(&'a Node<'a>),
13    Member {
14        node: &'a Node<'a>,
15        property: &'a Node<'a>,
16    },
17    Slice {
18        node: &'a Node<'a>,
19        from: Option<&'a Node<'a>>,
20        to: Option<&'a Node<'a>>,
21    },
22    Interval {
23        left: &'a Node<'a>,
24        right: &'a Node<'a>,
25        left_bracket: &'a str,
26        right_bracket: &'a str,
27    },
28    Conditional {
29        condition: &'a Node<'a>,
30        on_true: &'a Node<'a>,
31        on_false: &'a Node<'a>,
32    },
33    Unary {
34        node: &'a Node<'a>,
35        operator: &'a str,
36    },
37    Binary {
38        left: &'a Node<'a>,
39        operator: &'a str,
40        right: &'a Node<'a>,
41    },
42    BuiltIn {
43        name: &'a str,
44        arguments: &'a [&'a Node<'a>],
45    },
46}