sv_parser_syntaxtree/source_text/
configuration_source_text.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub struct ConfigDeclaration {
7 pub nodes: (
8 Keyword,
9 ConfigIdentifier,
10 Symbol,
11 Vec<(LocalParameterDeclaration, Symbol)>,
12 DesignStatement,
13 Vec<ConfigRuleStatement>,
14 Keyword,
15 Option<(Symbol, ConfigIdentifier)>,
16 ),
17}
18
19#[derive(Clone, Debug, PartialEq, Node)]
20pub struct DesignStatement {
21 pub nodes: (
22 Keyword,
23 Vec<(Option<(LibraryIdentifier, Symbol)>, CellIdentifier)>,
24 Symbol,
25 ),
26}
27
28#[derive(Clone, Debug, PartialEq, Node)]
29pub enum ConfigRuleStatement {
30 Default(Box<ConfigRuleStatementDefault>),
31 InstLib(Box<ConfigRuleStatementInstLib>),
32 InstUse(Box<ConfigRuleStatementInstUse>),
33 CellLib(Box<ConfigRuleStatementCellLib>),
34 CellUse(Box<ConfigRuleStatementCellUse>),
35}
36
37#[derive(Clone, Debug, PartialEq, Node)]
38pub struct ConfigRuleStatementDefault {
39 pub nodes: (DefaultClause, LiblistClause, Symbol),
40}
41
42#[derive(Clone, Debug, PartialEq, Node)]
43pub struct ConfigRuleStatementInstLib {
44 pub nodes: (InstClause, LiblistClause, Symbol),
45}
46
47#[derive(Clone, Debug, PartialEq, Node)]
48pub struct ConfigRuleStatementInstUse {
49 pub nodes: (InstClause, UseClause, Symbol),
50}
51
52#[derive(Clone, Debug, PartialEq, Node)]
53pub struct ConfigRuleStatementCellLib {
54 pub nodes: (CellClause, LiblistClause, Symbol),
55}
56
57#[derive(Clone, Debug, PartialEq, Node)]
58pub struct ConfigRuleStatementCellUse {
59 pub nodes: (CellClause, UseClause, Symbol),
60}
61
62#[derive(Clone, Debug, PartialEq, Node)]
63pub struct DefaultClause {
64 pub nodes: (Keyword,),
65}
66
67#[derive(Clone, Debug, PartialEq, Node)]
68pub struct InstClause {
69 pub nodes: (Keyword, InstName),
70}
71
72#[derive(Clone, Debug, PartialEq, Node)]
73pub struct InstName {
74 pub nodes: (TopmoduleIdentifier, Vec<(Symbol, InstanceIdentifier)>),
75}
76
77#[derive(Clone, Debug, PartialEq, Node)]
78pub struct CellClause {
79 pub nodes: (Keyword, Option<(LibraryIdentifier, Symbol)>, CellIdentifier),
80}
81
82#[derive(Clone, Debug, PartialEq, Node)]
83pub struct LiblistClause {
84 pub nodes: (Keyword, Vec<LibraryIdentifier>),
85}
86
87#[derive(Clone, Debug, PartialEq, Node)]
88pub enum UseClause {
89 Cell(Box<UseClauseCell>),
90 Named(Box<UseClauseNamed>),
91 CellNamed(Box<UseClauseCellNamed>),
92}
93
94#[derive(Clone, Debug, PartialEq, Node)]
95pub struct UseClauseCell {
96 pub nodes: (
97 Keyword,
98 Option<(LibraryIdentifier, Symbol)>,
99 CellIdentifier,
100 Option<(Symbol, Config)>,
101 ),
102}
103
104#[derive(Clone, Debug, PartialEq, Node)]
105pub struct UseClauseNamed {
106 pub nodes: (
107 Keyword,
108 List<Symbol, NamedParameterAssignment>,
109 Option<(Symbol, Config)>,
110 ),
111}
112
113#[derive(Clone, Debug, PartialEq, Node)]
114pub struct UseClauseCellNamed {
115 pub nodes: (
116 Keyword,
117 Option<(LibraryIdentifier, Symbol)>,
118 CellIdentifier,
119 List<Symbol, NamedParameterAssignment>,
120 Option<(Symbol, Config)>,
121 ),
122}
123
124#[derive(Clone, Debug, PartialEq, Node)]
125pub struct Config {
126 pub nodes: (Keyword,),
127}