1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use crate::*;
#[derive(Clone, Debug, PartialEq, Node)]
pub struct ConditionalStatement {
pub nodes: (
Option<UniquePriority>,
Keyword,
Paren<CondPredicate>,
StatementOrNull,
Vec<(Keyword, Keyword, Paren<CondPredicate>, StatementOrNull)>,
Option<(Keyword, StatementOrNull)>,
),
}
#[derive(Clone, Debug, PartialEq, Node)]
pub enum UniquePriority {
Unique(Box<Keyword>),
Unique0(Box<Keyword>),
Priority(Box<Keyword>),
}
#[derive(Clone, Debug, PartialEq, Node)]
pub struct CondPredicate {
pub nodes: (List<Symbol, ExpressionOrCondPattern>,),
}
#[derive(Clone, Debug, PartialEq, Node)]
pub enum ExpressionOrCondPattern {
Expression(Box<Expression>),
CondPattern(Box<CondPattern>),
}
#[derive(Clone, Debug, PartialEq, Node)]
pub struct CondPattern {
pub nodes: (Expression, Keyword, Pattern),
}