scarf_syntax/source_text/
checker_items.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub struct CheckerPortList<'a>(
9 pub CheckerPortItem<'a>,
10 pub Vec<(
11 Metadata<'a>, CheckerPortItem<'a>,
13 )>,
14);
15
16#[derive(Clone, Debug, PartialEq)]
17pub struct CheckerPortItem<'a>(
18 pub Vec<AttributeInstance<'a>>,
19 pub Option<CheckerPortDirection<'a>>,
20 pub PropertyFormalType<'a>,
21 pub FormalPortIdentifier<'a>,
22 pub Vec<VariableDimension<'a>>,
23 pub Option<(
24 Metadata<'a>, PropertyActualArg<'a>,
26 )>,
27);
28
29#[derive(Clone, Debug, PartialEq)]
30pub enum CheckerPortDirection<'a> {
31 Input(Metadata<'a>),
32 Output(Metadata<'a>),
33}
34
35#[derive(Clone, Debug, PartialEq)]
36pub enum CheckerOrGenerateItem<'a> {
37 Declaration(Box<CheckerOrGenerateItemDeclaration<'a>>),
38 Initial(Box<InitialConstruct<'a>>),
39 Always(Box<AlwaysConstruct<'a>>),
40 Final(Box<FinalConstruct<'a>>),
41 Assertion(Box<AssertionItem<'a>>),
42 Assign(Box<ContinuousAssign<'a>>),
43 Generate(Box<CheckerGenerateItem<'a>>),
44}
45
46#[derive(Clone, Debug, PartialEq)]
47pub enum CheckerOrGenerateItemDeclaration<'a> {
48 Data(
49 Box<(
50 Option<Metadata<'a>>, DataDeclaration<'a>,
52 )>,
53 ),
54 Function(Box<FunctionDeclaration<'a>>),
55 Checker(Box<CheckerDeclaration<'a>>),
56 AssertionItem(Box<AssertionItemDeclaration<'a>>),
57 Covergroup(Box<CovergroupDeclaration<'a>>),
58 Genvar(Box<GenvarDeclaration<'a>>),
59 Clocking(Box<ClockingDeclaration<'a>>),
60 DefaultClocking(
61 Box<(
62 Metadata<'a>, Metadata<'a>, ClockingIdentifier<'a>,
65 Metadata<'a>, )>,
67 ),
68 DefaultDisable(
69 Box<(
70 Metadata<'a>, Metadata<'a>, Metadata<'a>, ExpressionOrDist<'a>,
74 Metadata<'a>, )>,
76 ),
77 Null(Box<Metadata<'a>>),
78}
79
80#[derive(Clone, Debug, PartialEq)]
81pub enum CheckerGenerateItem<'a> {
82 Loop(Box<LoopGenerateConstruct<'a>>),
83 Conditional(Box<ConditionalGenerateConstruct<'a>>),
84 Region(Box<GenerateRegion<'a>>),
85 ElaborationSeverity(Box<ElaborationSeveritySystemTask<'a>>),
86}