sv_parser_syntaxtree/udp_declaration_and_instantiation/
udp_declaration.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[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}