sv_parser_syntaxtree/specify_section/
specify_block_terminals.rs1use crate::*;
2
3#[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}