sv_parser_syntaxtree/declarations/
delays.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[derive(Clone, Debug, PartialEq, Node)]
6pub enum Delay3 {
7    Single(Box<Delay3Single>),
8    Mintypmax(Box<Delay3Mintypmax>),
9}
10
11#[derive(Clone, Debug, PartialEq, Node)]
12pub struct Delay3Single {
13    pub nodes: (Symbol, DelayValue),
14}
15
16#[derive(Clone, Debug, PartialEq, Node)]
17pub struct Delay3Mintypmax {
18    pub nodes: (
19        Symbol,
20        Paren<(
21            MintypmaxExpression,
22            Option<(
23                Symbol,
24                MintypmaxExpression,
25                Option<(Symbol, MintypmaxExpression)>,
26            )>,
27        )>,
28    ),
29}
30
31#[derive(Clone, Debug, PartialEq, Node)]
32pub enum Delay2 {
33    Single(Box<Delay2Single>),
34    Mintypmax(Box<Delay2Mintypmax>),
35}
36
37#[derive(Clone, Debug, PartialEq, Node)]
38pub struct Delay2Single {
39    pub nodes: (Symbol, DelayValue),
40}
41
42#[derive(Clone, Debug, PartialEq, Node)]
43pub struct Delay2Mintypmax {
44    pub nodes: (
45        Symbol,
46        Paren<(MintypmaxExpression, Option<(Symbol, MintypmaxExpression)>)>,
47    ),
48}
49
50#[derive(Clone, Debug, PartialEq, Node)]
51pub enum DelayValue {
52    UnsignedNumber(Box<UnsignedNumber>),
53    RealNumber(Box<RealNumber>),
54    PsIdentifier(Box<PsIdentifier>),
55    HierarchicalIdentifier(Box<HierarchicalIdentifier>),
56    TimeLiteral(Box<TimeLiteral>),
57    Step1(Box<Keyword>),
58}