sv_parser_syntaxtree/source_text/
checker_items.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[derive(Clone, Debug, PartialEq, Node)]
6pub struct CheckerPortList {
7    pub nodes: (List<Symbol, CheckerPortItem>,),
8}
9
10#[derive(Clone, Debug, PartialEq, Node)]
11pub struct CheckerPortItem {
12    pub nodes: (
13        Vec<AttributeInstance>,
14        Option<CheckerPortDirection>,
15        PropertyFormalType,
16        FormalPortIdentifier,
17        Vec<VariableDimension>,
18        Option<(Symbol, PropertyActualArg)>,
19    ),
20}
21
22#[derive(Clone, Debug, PartialEq, Node)]
23pub enum CheckerPortDirection {
24    Input(Box<Keyword>),
25    Output(Box<Keyword>),
26}
27
28#[derive(Clone, Debug, PartialEq, Node)]
29pub enum CheckerOrGenerateItem {
30    CheckerOrGenerateItemDeclaration(Box<CheckerOrGenerateItemDeclaration>),
31    InitialConstruct(Box<InitialConstruct>),
32    AlwaysConstruct(Box<AlwaysConstruct>),
33    FinalConstruct(Box<FinalConstruct>),
34    AssertionItem(Box<AssertionItem>),
35    ContinuousAssign(Box<ContinuousAssign>),
36    CheckerGenerateItem(Box<CheckerGenerateItem>),
37}
38
39#[derive(Clone, Debug, PartialEq, Node)]
40pub enum CheckerOrGenerateItemDeclaration {
41    Data(Box<CheckerOrGenerateItemDeclarationData>),
42    FunctionDeclaration(Box<FunctionDeclaration>),
43    CheckerDeclaration(Box<CheckerDeclaration>),
44    AssertionItemDeclaration(Box<AssertionItemDeclaration>),
45    CovergroupDeclaration(Box<CovergroupDeclaration>),
46    GenvarDeclaration(Box<GenvarDeclaration>),
47    ClockingDeclaration(Box<ClockingDeclaration>),
48    Clocking(Box<CheckerOrGenerateItemDeclarationClocking>),
49    Disable(Box<CheckerOrGenerateItemDeclarationDisable>),
50    Empty(Box<Symbol>),
51}
52
53#[derive(Clone, Debug, PartialEq, Node)]
54pub struct CheckerOrGenerateItemDeclarationData {
55    pub nodes: (Option<Rand>, DataDeclaration),
56}
57
58#[derive(Clone, Debug, PartialEq, Node)]
59pub struct Rand {
60    pub nodes: (Keyword,),
61}
62
63#[derive(Clone, Debug, PartialEq, Node)]
64pub struct CheckerOrGenerateItemDeclarationClocking {
65    pub nodes: (Keyword, Keyword, ClockingIdentifier, Symbol),
66}
67
68#[derive(Clone, Debug, PartialEq, Node)]
69pub struct CheckerOrGenerateItemDeclarationDisable {
70    pub nodes: (Keyword, Keyword, Keyword, ExpressionOrDist, Symbol),
71}
72
73#[derive(Clone, Debug, PartialEq, Node)]
74pub enum CheckerGenerateItem {
75    LoopGenerateConstruct(Box<LoopGenerateConstruct>),
76    ConditionalGenerateConstruct(Box<ConditionalGenerateConstruct>),
77    GenerateRegion(Box<GenerateRegion>),
78    ElaborationSystemTask(Box<ElaborationSystemTask>),
79}