Skip to main content

scarf_syntax/specify_section/
specify_block_declaration.rs

1// =======================================================================
2// specify_block_declaration.rs
3// =======================================================================
4// CST Nodes from 1800-2023 A.7.1
5use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub struct SpecifyBlock<'a>(
9    pub Metadata<'a>, // specify
10    pub Vec<SpecifyItem<'a>>,
11    pub Metadata<'a>, // endspecify
12);
13
14#[derive(Clone, Debug, PartialEq)]
15pub enum SpecifyItem<'a> {
16    Specparam(Box<SpecparamDeclaration<'a>>),
17    Pulsestyle(Box<PulsestyleDeclaration<'a>>),
18    Showcancelled(Box<ShowcancelledDeclaration<'a>>),
19    Path(Box<PathDeclaration<'a>>),
20    SystemTiming(Box<SystemTimingCheck<'a>>),
21}
22
23#[derive(Clone, Debug, PartialEq)]
24pub enum PulsestyleDeclaration<'a> {
25    Onevent(
26        Box<(
27            Metadata<'a>, // pulsestyle_onevent
28            ListOfPathOutputs<'a>,
29            Metadata<'a>, // ;
30        )>,
31    ),
32    Ondetect(
33        Box<(
34            Metadata<'a>, // pulsestyle_ondetect
35            ListOfPathOutputs<'a>,
36            Metadata<'a>, // ;
37        )>,
38    ),
39}
40
41#[derive(Clone, Debug, PartialEq)]
42pub enum ShowcancelledDeclaration<'a> {
43    Show(
44        Box<(
45            Metadata<'a>, // showcancelled
46            ListOfPathOutputs<'a>,
47            Metadata<'a>, // ;
48        )>,
49    ),
50    Noshow(
51        Box<(
52            Metadata<'a>, // noshowcancelled
53            ListOfPathOutputs<'a>,
54            Metadata<'a>, // ;
55        )>,
56    ),
57}