sv_parser_syntaxtree/udp_declaration_and_instantiation/
udp_declaration.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub struct UdpNonansiDeclaration {
7 pub nodes: (
8 Vec<AttributeInstance>,
9 Keyword,
10 UdpIdentifier,
11 Paren<UdpPortList>,
12 Symbol,
13 ),
14}
15
16#[derive(Clone, Debug, PartialEq, Node)]
17pub struct UdpAnsiDeclaration {
18 pub nodes: (
19 Vec<AttributeInstance>,
20 Keyword,
21 UdpIdentifier,
22 Paren<UdpDeclarationPortList>,
23 Symbol,
24 ),
25}
26
27#[derive(Clone, Debug, PartialEq, Node)]
28pub enum UdpDeclaration {
29 Nonansi(Box<UdpDeclarationNonansi>),
30 Ansi(Box<UdpDeclarationAnsi>),
31 ExternNonansi(Box<UdpDeclarationExternNonansi>),
32 ExternAnsi(Box<UdpDeclarationExternAnsi>),
33 Wildcard(Box<UdpDeclarationWildcard>),
34}
35
36#[derive(Clone, Debug, PartialEq, Node)]
37pub struct UdpDeclarationNonansi {
38 pub nodes: (
39 UdpNonansiDeclaration,
40 UdpPortDeclaration,
41 Vec<UdpPortDeclaration>,
42 UdpBody,
43 Keyword,
44 Option<(Symbol, UdpIdentifier)>,
45 ),
46}
47
48#[derive(Clone, Debug, PartialEq, Node)]
49pub struct UdpDeclarationAnsi {
50 pub nodes: (
51 UdpAnsiDeclaration,
52 UdpBody,
53 Keyword,
54 Option<(Symbol, UdpIdentifier)>,
55 ),
56}
57
58#[derive(Clone, Debug, PartialEq, Node)]
59pub struct UdpDeclarationExternNonansi {
60 pub nodes: (Keyword, UdpNonansiDeclaration),
61}
62
63#[derive(Clone, Debug, PartialEq, Node)]
64pub struct UdpDeclarationExternAnsi {
65 pub nodes: (Keyword, UdpAnsiDeclaration),
66}
67
68#[derive(Clone, Debug, PartialEq, Node)]
69pub struct UdpDeclarationWildcard {
70 pub nodes: (
71 Vec<AttributeInstance>,
72 Keyword,
73 UdpIdentifier,
74 Paren<Symbol>,
75 Symbol,
76 Vec<UdpPortDeclaration>,
77 UdpBody,
78 Keyword,
79 Option<(Symbol, UdpIdentifier)>,
80 ),
81}