scarf_syntax/behavioral_statements/
parallel_and_sequential_blocks.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub enum ActionBlock<'a> {
9 Basic(Box<StatementOrNull<'a>>),
10 Conditional(
11 Box<(
12 Option<Statement<'a>>,
13 Metadata<'a>, StatementOrNull<'a>,
15 )>,
16 ),
17}
18
19#[derive(Clone, Debug, PartialEq)]
20pub struct SeqBlock<'a>(
21 pub Metadata<'a>, pub Option<(
23 Metadata<'a>, BlockIdentifier<'a>,
25 )>,
26 pub Vec<BlockItemDeclaration<'a>>,
27 pub Vec<StatementOrNull<'a>>,
28 pub Metadata<'a>, pub Option<(
30 Metadata<'a>, BlockIdentifier<'a>,
32 )>,
33);
34
35#[derive(Clone, Debug, PartialEq)]
36pub struct ParBlock<'a>(
37 pub Metadata<'a>, pub Option<(
39 Metadata<'a>, BlockIdentifier<'a>,
41 )>,
42 pub Vec<BlockItemDeclaration<'a>>,
43 pub Vec<StatementOrNull<'a>>,
44 pub JoinKeyword<'a>,
45 pub Option<(
46 Metadata<'a>, BlockIdentifier<'a>,
48 )>,
49);
50
51#[derive(Clone, Debug, PartialEq)]
52pub enum JoinKeyword<'a> {
53 Join(Metadata<'a>),
54 JoinAny(Metadata<'a>),
55 JoinNone(Metadata<'a>),
56}