sv_parser_syntaxtree/general/
identifiers.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[derive(Clone, Debug, PartialEq, Node)]
6pub struct ArrayIdentifier {
7    pub nodes: (Identifier,),
8}
9
10#[derive(Clone, Debug, PartialEq, Node)]
11pub struct BlockIdentifier {
12    pub nodes: (Identifier,),
13}
14
15#[derive(Clone, Debug, PartialEq, Node)]
16pub struct BinIdentifier {
17    pub nodes: (Identifier,),
18}
19
20#[derive(Clone, Debug, PartialEq, Node)]
21pub struct CIdentifier {
22    pub nodes: (Locate, Vec<WhiteSpace>),
23}
24
25#[derive(Clone, Debug, PartialEq, Node)]
26pub struct CellIdentifier {
27    pub nodes: (Identifier,),
28}
29
30#[derive(Clone, Debug, PartialEq, Node)]
31pub struct CheckerIdentifier {
32    pub nodes: (Identifier,),
33}
34
35#[derive(Clone, Debug, PartialEq, Node)]
36pub struct ClassIdentifier {
37    pub nodes: (Identifier,),
38}
39
40#[derive(Clone, Debug, PartialEq, Node)]
41pub struct ClassVariableIdentifier {
42    pub nodes: (VariableIdentifier,),
43}
44
45#[derive(Clone, Debug, PartialEq, Node)]
46pub struct ClockingIdentifier {
47    pub nodes: (Identifier,),
48}
49
50#[derive(Clone, Debug, PartialEq, Node)]
51pub struct ConfigIdentifier {
52    pub nodes: (Identifier,),
53}
54
55#[derive(Clone, Debug, PartialEq, Node)]
56pub struct ConstIdentifier {
57    pub nodes: (Identifier,),
58}
59
60#[derive(Clone, Debug, PartialEq, Node)]
61pub struct ConstraintIdentifier {
62    pub nodes: (Identifier,),
63}
64
65#[derive(Clone, Debug, PartialEq, Node)]
66pub struct CovergroupIdentifier {
67    pub nodes: (Identifier,),
68}
69
70#[derive(Clone, Debug, PartialEq, Node)]
71pub struct CovergroupVariableIdentifier {
72    pub nodes: (VariableIdentifier,),
73}
74
75#[derive(Clone, Debug, PartialEq, Node)]
76pub struct CoverPointIdentifier {
77    pub nodes: (Identifier,),
78}
79
80#[derive(Clone, Debug, PartialEq, Node)]
81pub struct CrossIdentifier {
82    pub nodes: (Identifier,),
83}
84
85#[derive(Clone, Debug, PartialEq, Node)]
86pub struct DynamicArrayVariableIdentifier {
87    pub nodes: (VariableIdentifier,),
88}
89
90#[derive(Clone, Debug, PartialEq, Node)]
91pub struct EnumIdentifier {
92    pub nodes: (Identifier,),
93}
94
95#[derive(Clone, Debug, PartialEq, Node)]
96pub struct EscapedIdentifier {
97    pub nodes: (Locate, Vec<WhiteSpace>),
98}
99
100#[derive(Clone, Debug, PartialEq, Node)]
101pub struct FormalIdentifier {
102    pub nodes: (Identifier,),
103}
104
105#[derive(Clone, Debug, PartialEq, Node)]
106pub struct FormalPortIdentifier {
107    pub nodes: (Identifier,),
108}
109
110#[derive(Clone, Debug, PartialEq, Node)]
111pub struct FunctionIdentifier {
112    pub nodes: (Identifier,),
113}
114
115#[derive(Clone, Debug, PartialEq, Node)]
116pub struct GenerateBlockIdentifier {
117    pub nodes: (Identifier,),
118}
119
120#[derive(Clone, Debug, PartialEq, Node)]
121pub struct GenvarIdentifier {
122    pub nodes: (Identifier,),
123}
124
125#[derive(Clone, Debug, PartialEq, Node)]
126pub struct HierarchicalArrayIdentifier {
127    pub nodes: (HierarchicalIdentifier,),
128}
129
130#[derive(Clone, Debug, PartialEq, Node)]
131pub struct HierarchicalBlockIdentifier {
132    pub nodes: (HierarchicalIdentifier,),
133}
134
135#[derive(Clone, Debug, PartialEq, Node)]
136pub struct HierarchicalEventIdentifier {
137    pub nodes: (HierarchicalIdentifier,),
138}
139
140#[derive(Clone, Debug, PartialEq, Node)]
141pub struct HierarchicalIdentifier {
142    pub nodes: (
143        Option<Root>,
144        Vec<(Identifier, ConstantBitSelect, Symbol)>,
145        Identifier,
146    ),
147}
148
149#[derive(Clone, Debug, PartialEq, Node)]
150pub struct Root {
151    pub nodes: (Keyword, Symbol),
152}
153
154#[derive(Clone, Debug, PartialEq, Node)]
155pub struct HierarchicalNetIdentifier {
156    pub nodes: (HierarchicalIdentifier,),
157}
158
159#[derive(Clone, Debug, PartialEq, Node)]
160pub struct HierarchicalParameterIdentifier {
161    pub nodes: (HierarchicalIdentifier,),
162}
163
164#[derive(Clone, Debug, PartialEq, Node)]
165pub struct HierarchicalPropertyIdentifier {
166    pub nodes: (HierarchicalIdentifier,),
167}
168
169#[derive(Clone, Debug, PartialEq, Node)]
170pub struct HierarchicalSequenceIdentifier {
171    pub nodes: (HierarchicalIdentifier,),
172}
173
174#[derive(Clone, Debug, PartialEq, Node)]
175pub struct HierarchicalTaskIdentifier {
176    pub nodes: (HierarchicalIdentifier,),
177}
178
179#[derive(Clone, Debug, PartialEq, Node)]
180pub struct HierarchicalTfIdentifier {
181    pub nodes: (HierarchicalIdentifier,),
182}
183
184#[derive(Clone, Debug, PartialEq, Node)]
185pub struct HierarchicalVariableIdentifier {
186    pub nodes: (HierarchicalIdentifier,),
187}
188
189#[derive(Clone, Debug, PartialEq, Node)]
190pub enum Identifier {
191    SimpleIdentifier(Box<SimpleIdentifier>),
192    EscapedIdentifier(Box<EscapedIdentifier>),
193}
194
195#[derive(Clone, Debug, PartialEq, Node)]
196pub struct IndexVariableIdentifier {
197    pub nodes: (Identifier,),
198}
199
200#[derive(Clone, Debug, PartialEq, Node)]
201pub struct InterfaceIdentifier {
202    pub nodes: (Identifier,),
203}
204
205#[derive(Clone, Debug, PartialEq, Node)]
206pub struct InterfaceInstanceIdentifier {
207    pub nodes: (Identifier,),
208}
209
210#[derive(Clone, Debug, PartialEq, Node)]
211pub struct InoutPortIdentifier {
212    pub nodes: (Identifier,),
213}
214
215#[derive(Clone, Debug, PartialEq, Node)]
216pub struct InputPortIdentifier {
217    pub nodes: (Identifier,),
218}
219
220#[derive(Clone, Debug, PartialEq, Node)]
221pub struct InstanceIdentifier {
222    pub nodes: (Identifier,),
223}
224
225#[derive(Clone, Debug, PartialEq, Node)]
226pub struct LibraryIdentifier {
227    pub nodes: (Identifier,),
228}
229
230#[derive(Clone, Debug, PartialEq, Node)]
231pub struct MemberIdentifier {
232    pub nodes: (Identifier,),
233}
234
235#[derive(Clone, Debug, PartialEq, Node)]
236pub struct MethodIdentifier {
237    pub nodes: (Identifier,),
238}
239
240#[derive(Clone, Debug, PartialEq, Node)]
241pub struct ModportIdentifier {
242    pub nodes: (Identifier,),
243}
244
245#[derive(Clone, Debug, PartialEq, Node)]
246pub struct ModuleIdentifier {
247    pub nodes: (Identifier,),
248}
249
250#[derive(Clone, Debug, PartialEq, Node)]
251pub struct NetIdentifier {
252    pub nodes: (Identifier,),
253}
254
255#[derive(Clone, Debug, PartialEq, Node)]
256pub struct NetTypeIdentifier {
257    pub nodes: (Identifier,),
258}
259
260#[derive(Clone, Debug, PartialEq, Node)]
261pub struct OutputPortIdentifier {
262    pub nodes: (Identifier,),
263}
264
265#[derive(Clone, Debug, PartialEq, Node)]
266pub struct PackageIdentifier {
267    pub nodes: (Identifier,),
268}
269
270#[derive(Clone, Debug, PartialEq, Node)]
271pub enum PackageScope {
272    Package(Box<PackageScopePackage>),
273    Unit(Box<Unit>),
274}
275
276#[derive(Clone, Debug, PartialEq, Node)]
277pub struct PackageScopePackage {
278    pub nodes: (PackageIdentifier, Symbol),
279}
280
281#[derive(Clone, Debug, PartialEq, Node)]
282pub struct Unit {
283    pub nodes: (Keyword, Symbol),
284}
285
286#[derive(Clone, Debug, PartialEq, Node)]
287pub struct ParameterIdentifier {
288    pub nodes: (Identifier,),
289}
290
291#[derive(Clone, Debug, PartialEq, Node)]
292pub struct PortIdentifier {
293    pub nodes: (Identifier,),
294}
295
296#[derive(Clone, Debug, PartialEq, Node)]
297pub struct ProductionIdentifier {
298    pub nodes: (Identifier,),
299}
300
301#[derive(Clone, Debug, PartialEq, Node)]
302pub struct ProgramIdentifier {
303    pub nodes: (Identifier,),
304}
305
306#[derive(Clone, Debug, PartialEq, Node)]
307pub struct PropertyIdentifier {
308    pub nodes: (Identifier,),
309}
310
311#[derive(Clone, Debug, PartialEq, Node)]
312pub struct PsClassIdentifier {
313    pub nodes: (Option<PackageScope>, ClassIdentifier),
314}
315
316#[derive(Clone, Debug, PartialEq, Node)]
317pub struct PsCovergroupIdentifier {
318    pub nodes: (Option<PackageScope>, CovergroupIdentifier),
319}
320
321#[derive(Clone, Debug, PartialEq, Node)]
322pub struct PsCheckerIdentifier {
323    pub nodes: (Option<PackageScope>, CheckerIdentifier),
324}
325
326#[derive(Clone, Debug, PartialEq, Node)]
327pub struct PsIdentifier {
328    pub nodes: (Option<PackageScope>, Identifier),
329}
330
331#[derive(Clone, Debug, PartialEq, Node)]
332pub struct PsOrHierarchicalArrayIdentifier {
333    pub nodes: (
334        Option<ImplicitClassHandleOrClassScopeOrPackageScope>,
335        HierarchicalArrayIdentifier,
336    ),
337}
338
339#[derive(Clone, Debug, PartialEq, Node)]
340pub enum PsOrHierarchicalNetIdentifier {
341    PackageScope(Box<PsOrHierarchicalNetIdentifierPackageScope>),
342    HierarchicalNetIdentifier(Box<HierarchicalNetIdentifier>),
343}
344
345#[derive(Clone, Debug, PartialEq, Node)]
346pub struct PsOrHierarchicalNetIdentifierPackageScope {
347    pub nodes: (Option<PackageScope>, NetIdentifier),
348}
349
350#[derive(Clone, Debug, PartialEq, Node)]
351pub struct PsOrHierarchicalNetIdentifierHierarchical {
352    pub nodes: (HierarchicalNetIdentifier,),
353}
354
355#[derive(Clone, Debug, PartialEq, Node)]
356pub enum PsOrHierarchicalPropertyIdentifier {
357    PackageScope(Box<PsOrHierarchicalPropertyIdentifierPackageScope>),
358    HierarchicalPropertyIdentifier(Box<HierarchicalPropertyIdentifier>),
359}
360
361#[derive(Clone, Debug, PartialEq, Node)]
362pub struct PsOrHierarchicalPropertyIdentifierPackageScope {
363    pub nodes: (Option<PackageScope>, PropertyIdentifier),
364}
365
366#[derive(Clone, Debug, PartialEq, Node)]
367pub struct PsOrHierarchicalPropertyIdentifierHierarchical {
368    pub nodes: (HierarchicalPropertyIdentifier,),
369}
370
371#[derive(Clone, Debug, PartialEq, Node)]
372pub enum PsOrHierarchicalSequenceIdentifier {
373    PackageScope(Box<PsOrHierarchicalSequenceIdentifierPackageScope>),
374    HierarchicalSequenceIdentifier(Box<HierarchicalSequenceIdentifier>),
375}
376
377#[derive(Clone, Debug, PartialEq, Node)]
378pub struct PsOrHierarchicalSequenceIdentifierPackageScope {
379    pub nodes: (Option<PackageScope>, SequenceIdentifier),
380}
381
382#[derive(Clone, Debug, PartialEq, Node)]
383pub struct PsOrHierarchicalSequenceIdentifierHierarchical {
384    pub nodes: (HierarchicalSequenceIdentifier,),
385}
386
387#[derive(Clone, Debug, PartialEq, Node)]
388pub enum PsOrHierarchicalTfIdentifier {
389    PackageScope(Box<PsOrHierarchicalTfIdentifierPackageScope>),
390    HierarchicalTfIdentifier(Box<HierarchicalTfIdentifier>),
391}
392
393#[derive(Clone, Debug, PartialEq, Node)]
394pub struct PsOrHierarchicalTfIdentifierPackageScope {
395    pub nodes: (
396        Option<ImplicitClassHandleOrClassScopeOrPackageScope>,
397        TfIdentifier,
398    ),
399}
400
401#[derive(Clone, Debug, PartialEq, Node)]
402pub struct PsOrHierarchicalTfIdentifierHierarchical {
403    pub nodes: (HierarchicalTfIdentifier,),
404}
405
406#[derive(Clone, Debug, PartialEq, Node)]
407pub enum PsParameterIdentifier {
408    Scope(Box<PsParameterIdentifierScope>),
409    Generate(Box<PsParameterIdentifierGenerate>),
410}
411
412#[derive(Clone, Debug, PartialEq, Node)]
413pub struct PsParameterIdentifierScope {
414    pub nodes: (Option<PackageScopeOrClassScope>, ParameterIdentifier),
415}
416
417#[derive(Clone, Debug, PartialEq, Node)]
418pub struct PsParameterIdentifierGenerate {
419    pub nodes: (
420        Vec<(
421            GenerateBlockIdentifier,
422            Option<Bracket<ConstantExpression>>,
423            Symbol,
424        )>,
425        ParameterIdentifier,
426    ),
427}
428
429#[derive(Clone, Debug, PartialEq, Node)]
430pub struct PsTypeIdentifier {
431    pub nodes: (Option<LocalOrPackageScopeOrClassScope>, TypeIdentifier),
432}
433
434#[derive(Clone, Debug, PartialEq, Node)]
435pub enum LocalOrPackageScopeOrClassScope {
436    Local(Box<Local>),
437    PackageScope(Box<PackageScope>),
438    ClassScope(Box<ClassScope>),
439}
440
441#[derive(Clone, Debug, PartialEq, Node)]
442pub struct Local {
443    pub nodes: (Keyword, Symbol),
444}
445
446#[derive(Clone, Debug, PartialEq, Node)]
447pub struct SequenceIdentifier {
448    pub nodes: (Identifier,),
449}
450
451#[derive(Clone, Debug, PartialEq, Node)]
452pub struct SignalIdentifier {
453    pub nodes: (Identifier,),
454}
455
456#[derive(Clone, Debug, PartialEq, Node)]
457pub struct SimpleIdentifier {
458    pub nodes: (Locate, Vec<WhiteSpace>),
459}
460
461#[derive(Clone, Debug, PartialEq, Node)]
462pub struct SpecparamIdentifier {
463    pub nodes: (Identifier,),
464}
465
466#[derive(Clone, Debug, PartialEq, Node)]
467pub struct SystemTfIdentifier {
468    pub nodes: (Locate, Vec<WhiteSpace>),
469}
470
471#[derive(Clone, Debug, PartialEq, Node)]
472pub struct TaskIdentifier {
473    pub nodes: (Identifier,),
474}
475
476#[derive(Clone, Debug, PartialEq, Node)]
477pub struct TfIdentifier {
478    pub nodes: (Identifier,),
479}
480
481#[derive(Clone, Debug, PartialEq, Node)]
482pub struct TerminalIdentifier {
483    pub nodes: (Identifier,),
484}
485
486#[derive(Clone, Debug, PartialEq, Node)]
487pub struct TopmoduleIdentifier {
488    pub nodes: (Identifier,),
489}
490
491#[derive(Clone, Debug, PartialEq, Node)]
492pub struct TypeIdentifier {
493    pub nodes: (Identifier,),
494}
495
496#[derive(Clone, Debug, PartialEq, Node)]
497pub struct UdpIdentifier {
498    pub nodes: (Identifier,),
499}
500
501#[derive(Clone, Debug, PartialEq, Node)]
502pub struct VariableIdentifier {
503    pub nodes: (Identifier,),
504}
505
506#[derive(Clone, Debug, PartialEq, Node)]
507pub enum ImplicitClassHandleOrClassScopeOrPackageScope {
508    ImplicitClassHandle(Box<(ImplicitClassHandle, Symbol)>),
509    ClassScope(Box<ClassScope>),
510    PackageScope(Box<PackageScope>),
511}
512
513#[derive(Clone, Debug, PartialEq, Node)]
514pub enum ImplicitClassHandleOrPackageScope {
515    ImplicitClassHandle(Box<(ImplicitClassHandle, Symbol)>),
516    PackageScope(Box<PackageScope>),
517}
518
519#[derive(Clone, Debug, PartialEq, Node)]
520pub enum ImplicitClassHandleOrClassScope {
521    ImplicitClassHandle(Box<(ImplicitClassHandle, Symbol)>),
522    ClassScope(Box<ClassScope>),
523}
524
525#[derive(Clone, Debug, PartialEq, Node)]
526pub enum PackageScopeOrClassScope {
527    PackageScope(Box<PackageScope>),
528    ClassScope(Box<ClassScope>),
529}