general_parser/
configuration.rs1#[derive(Clone, Copy, Debug)]
2pub struct BinaryOperator<'a> {
3 pub representation: &'a str,
4 pub precedence: u8,
5}
6
7#[derive(Clone, Copy, Debug)]
8pub struct UnaryOperator<'a> {
9 pub representation: &'a str,
10 pub precedence: u8,
11}
12
13#[derive(Clone, Copy, Debug)]
16pub struct TernaryOperator<'a> {
17 pub name: &'a str,
18 pub parts: (&'a str, &'a str, &'a str),
19 pub precedence: u8,
20}
21
22#[derive(Default, Debug)]
23pub struct Configuration<'a> {
24 pub prefix_unary_operators: Vec<UnaryOperator<'a>>,
25 pub prefix_ternary_operators: Vec<TernaryOperator<'a>>,
26 pub postfix_unary_operators: Vec<UnaryOperator<'a>>,
27 pub postfix_ternary_operators: Vec<TernaryOperator<'a>>,
28 pub binary_operators: Vec<BinaryOperator<'a>>,
29 pub adjacency: Option<Adjacency<'a>>,
30}
31
32#[derive(Debug)]
33pub struct Adjacency<'a> {
34 pub operator: BinaryOperator<'a>,
36 pub functions: Vec<&'a str>,
37}