sv_parser_syntaxtree/udp_declaration_and_instantiation/
udp_ports.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub struct UdpPortList {
7 pub nodes: (
8 OutputPortIdentifier,
9 Symbol,
10 List<Symbol, InputPortIdentifier>,
11 ),
12}
13
14#[derive(Clone, Debug, PartialEq, Node)]
15pub struct UdpDeclarationPortList {
16 pub nodes: (
17 UdpOutputDeclaration,
18 Symbol,
19 List<Symbol, UdpInputDeclaration>,
20 ),
21}
22
23#[derive(Clone, Debug, PartialEq, Node)]
24pub enum UdpPortDeclaration {
25 UdpOutputDeclaration(Box<(UdpOutputDeclaration, Symbol)>),
26 UdpInputDeclaration(Box<(UdpInputDeclaration, Symbol)>),
27 UdpRegDeclaration(Box<(UdpRegDeclaration, Symbol)>),
28}
29
30#[derive(Clone, Debug, PartialEq, Node)]
31pub enum UdpOutputDeclaration {
32 Nonreg(Box<UdpOutputDeclarationNonreg>),
33 Reg(Box<UdpOutputDeclarationReg>),
34}
35
36#[derive(Clone, Debug, PartialEq, Node)]
37pub struct UdpOutputDeclarationNonreg {
38 pub nodes: (Vec<AttributeInstance>, Keyword, PortIdentifier),
39}
40
41#[derive(Clone, Debug, PartialEq, Node)]
42pub struct UdpOutputDeclarationReg {
43 pub nodes: (
44 Vec<AttributeInstance>,
45 Keyword,
46 Keyword,
47 PortIdentifier,
48 Option<(Symbol, ConstantExpression)>,
49 ),
50}
51
52#[derive(Clone, Debug, PartialEq, Node)]
53pub struct UdpInputDeclaration {
54 pub nodes: (Vec<AttributeInstance>, Keyword, ListOfUdpPortIdentifiers),
55}
56
57#[derive(Clone, Debug, PartialEq, Node)]
58pub struct UdpRegDeclaration {
59 pub nodes: (Vec<AttributeInstance>, Keyword, VariableIdentifier),
60}