sv_parser_syntaxtree/specify_section/
specify_block_terminals.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[derive(Clone, Debug, PartialEq, Node)]
6pub struct SpecifyInputTerminalDescriptor {
7    pub nodes: (InputIdentifier, Option<Bracket<ConstantRangeExpression>>),
8}
9
10#[derive(Clone, Debug, PartialEq, Node)]
11pub struct SpecifyOutputTerminalDescriptor {
12    pub nodes: (OutputIdentifier, Option<Bracket<ConstantRangeExpression>>),
13}
14
15#[derive(Clone, Debug, PartialEq, Node)]
16pub enum InputIdentifier {
17    InputPortIdentifier(Box<InputPortIdentifier>),
18    InoutPortIdentifier(Box<InoutPortIdentifier>),
19    Interface(Box<InputIdentifierInterface>),
20}
21
22#[derive(Clone, Debug, PartialEq, Node)]
23pub struct InputIdentifierInterface {
24    pub nodes: (InterfaceIdentifier, Symbol, PortIdentifier),
25}
26
27#[derive(Clone, Debug, PartialEq, Node)]
28pub enum OutputIdentifier {
29    OutputPortIdentifier(Box<OutputPortIdentifier>),
30    InoutPortIdentifier(Box<InoutPortIdentifier>),
31    Interface(Box<OutputIdentifierInterface>),
32}
33
34#[derive(Clone, Debug, PartialEq, Node)]
35pub struct OutputIdentifierInterface {
36    pub nodes: (InterfaceIdentifier, Symbol, PortIdentifier),
37}