sv_parser_syntaxtree/behavioral_statements/
parallel_and_sequential_blocks.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub enum ActionBlock {
7 StatementOrNull(Box<StatementOrNull>),
8 Else(Box<ActionBlockElse>),
9}
10
11#[derive(Clone, Debug, PartialEq, Node)]
12pub struct ActionBlockElse {
13 pub nodes: (Option<Statement>, Keyword, StatementOrNull),
14}
15
16#[derive(Clone, Debug, PartialEq, Node)]
17pub struct SeqBlock {
18 pub nodes: (
19 Keyword,
20 Option<(Symbol, BlockIdentifier)>,
21 Vec<BlockItemDeclaration>,
22 Vec<StatementOrNull>,
23 Keyword,
24 Option<(Symbol, BlockIdentifier)>,
25 ),
26}
27
28#[derive(Clone, Debug, PartialEq, Node)]
29pub struct ParBlock {
30 pub nodes: (
31 Keyword,
32 Option<(Symbol, BlockIdentifier)>,
33 Vec<BlockItemDeclaration>,
34 Vec<StatementOrNull>,
35 JoinKeyword,
36 Option<(Symbol, BlockIdentifier)>,
37 ),
38}
39
40#[derive(Clone, Debug, PartialEq, Node)]
41pub enum JoinKeyword {
42 Join(Box<Keyword>),
43 JoinAny(Box<Keyword>),
44 JoinNone(Box<Keyword>),
45}