sv_parser_syntaxtree/instantiations/
module_instantiation.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub struct ModuleInstantiation {
7 pub nodes: (
8 ModuleIdentifier,
9 Option<ParameterValueAssignment>,
10 List<Symbol, HierarchicalInstance>,
11 Symbol,
12 ),
13}
14
15#[derive(Clone, Debug, PartialEq, Node)]
16pub struct ParameterValueAssignment {
17 pub nodes: (Symbol, Paren<Option<ListOfParameterAssignments>>),
18}
19
20#[derive(Clone, Debug, PartialEq, Node)]
21pub enum ListOfParameterAssignments {
22 Ordered(Box<ListOfParameterAssignmentsOrdered>),
23 Named(Box<ListOfParameterAssignmentsNamed>),
24}
25
26#[derive(Clone, Debug, PartialEq, Node)]
27pub struct ListOfParameterAssignmentsOrdered {
28 pub nodes: (List<Symbol, OrderedParameterAssignment>,),
29}
30
31#[derive(Clone, Debug, PartialEq, Node)]
32pub struct ListOfParameterAssignmentsNamed {
33 pub nodes: (List<Symbol, NamedParameterAssignment>,),
34}
35
36#[derive(Clone, Debug, PartialEq, Node)]
37pub struct OrderedParameterAssignment {
38 pub nodes: (ParamExpression,),
39}
40
41#[derive(Clone, Debug, PartialEq, Node)]
42pub struct NamedParameterAssignment {
43 pub nodes: (Symbol, ParameterIdentifier, Paren<Option<ParamExpression>>),
44}
45
46#[derive(Clone, Debug, PartialEq, Node)]
47pub struct HierarchicalInstance {
48 pub nodes: (NameOfInstance, Paren<Option<ListOfPortConnections>>),
49}
50
51#[derive(Clone, Debug, PartialEq, Node)]
52pub struct NameOfInstance {
53 pub nodes: (InstanceIdentifier, Vec<UnpackedDimension>),
54}
55
56#[derive(Clone, Debug, PartialEq, Node)]
57pub enum ListOfPortConnections {
58 Ordered(Box<ListOfPortConnectionsOrdered>),
59 Named(Box<ListOfPortConnectionsNamed>),
60}
61
62#[derive(Clone, Debug, PartialEq, Node)]
63pub struct ListOfPortConnectionsOrdered {
64 pub nodes: (List<Symbol, OrderedPortConnection>,),
65}
66
67#[derive(Clone, Debug, PartialEq, Node)]
68pub struct ListOfPortConnectionsNamed {
69 pub nodes: (List<Symbol, NamedPortConnection>,),
70}
71
72#[derive(Clone, Debug, PartialEq, Node)]
73pub struct OrderedPortConnection {
74 pub nodes: (Vec<AttributeInstance>, Option<Expression>),
75}
76
77#[derive(Clone, Debug, PartialEq, Node)]
78pub enum NamedPortConnection {
79 Identifier(Box<NamedPortConnectionIdentifier>),
80 Asterisk(Box<NamedPortConnectionAsterisk>),
81}
82
83#[derive(Clone, Debug, PartialEq, Node)]
84pub struct NamedPortConnectionIdentifier {
85 pub nodes: (
86 Vec<AttributeInstance>,
87 Symbol,
88 PortIdentifier,
89 Option<Paren<Option<Expression>>>,
90 ),
91}
92
93#[derive(Clone, Debug, PartialEq, Node)]
94pub struct NamedPortConnectionAsterisk {
95 pub nodes: (Vec<AttributeInstance>, Symbol),
96}