sv_parser_syntaxtree/declarations/
declaration_assignments.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub struct DefparamAssignment {
7 pub nodes: (
8 HierarchicalParameterIdentifier,
9 Symbol,
10 ConstantMintypmaxExpression,
11 ),
12}
13
14#[derive(Clone, Debug, PartialEq, Node)]
15pub struct NetDeclAssignment {
16 pub nodes: (
17 NetIdentifier,
18 Vec<UnpackedDimension>,
19 Option<(Symbol, Expression)>,
20 ),
21}
22
23#[derive(Clone, Debug, PartialEq, Node)]
24pub struct ParamAssignment {
25 pub nodes: (
26 ParameterIdentifier,
27 Vec<UnpackedDimension>,
28 Option<(Symbol, ConstantParamExpression)>,
29 ),
30}
31
32#[derive(Clone, Debug, PartialEq, Node)]
33pub enum SpecparamAssignment {
34 Mintypmax(Box<SpecparamAssignmentMintypmax>),
35 PulseControlSpecparam(Box<PulseControlSpecparam>),
36}
37
38#[derive(Clone, Debug, PartialEq, Node)]
39pub struct SpecparamAssignmentMintypmax {
40 pub nodes: (SpecparamIdentifier, Symbol, ConstantMintypmaxExpression),
41}
42
43#[derive(Clone, Debug, PartialEq, Node)]
44pub struct TypeAssignment {
45 pub nodes: (TypeIdentifier, Option<(Symbol, DataType)>),
46}
47
48#[derive(Clone, Debug, PartialEq, Node)]
49pub enum PulseControlSpecparam {
50 WithoutDescriptor(Box<PulseControlSpecparamWithoutDescriptor>),
51 WithDescriptor(Box<PulseControlSpecparamWithDescriptor>),
52}
53
54#[derive(Clone, Debug, PartialEq, Node)]
55pub struct PulseControlSpecparamWithoutDescriptor {
56 pub nodes: (
57 Symbol,
58 Symbol,
59 Paren<(RejectLimitValue, Option<(Symbol, ErrorLimitValue)>)>,
60 ),
61}
62
63#[derive(Clone, Debug, PartialEq, Node)]
64pub struct PulseControlSpecparamWithDescriptor {
65 pub nodes: (
66 Symbol,
67 SpecifyInputTerminalDescriptor,
68 Symbol,
69 SpecifyOutputTerminalDescriptor,
70 Symbol,
71 Paren<(RejectLimitValue, Option<(Symbol, ErrorLimitValue)>)>,
72 ),
73}
74
75#[derive(Clone, Debug, PartialEq, Node)]
76pub struct ErrorLimitValue {
77 pub nodes: (LimitValue,),
78}
79
80#[derive(Clone, Debug, PartialEq, Node)]
81pub struct RejectLimitValue {
82 pub nodes: (LimitValue,),
83}
84
85#[derive(Clone, Debug, PartialEq, Node)]
86pub struct LimitValue {
87 pub nodes: (ConstantMintypmaxExpression,),
88}
89
90#[derive(Clone, Debug, PartialEq, Node)]
91pub enum VariableDeclAssignment {
92 Variable(Box<VariableDeclAssignmentVariable>),
93 DynamicArray(Box<VariableDeclAssignmentDynamicArray>),
94 Class(Box<VariableDeclAssignmentClass>),
95}
96
97#[derive(Clone, Debug, PartialEq, Node)]
98pub struct VariableDeclAssignmentVariable {
99 pub nodes: (
100 VariableIdentifier,
101 Vec<VariableDimension>,
102 Option<(Symbol, Expression)>,
103 ),
104}
105
106#[derive(Clone, Debug, PartialEq, Node)]
107pub struct VariableDeclAssignmentDynamicArray {
108 pub nodes: (
109 DynamicArrayVariableIdentifier,
110 UnsizedDimension,
111 Vec<VariableDimension>,
112 Option<(Symbol, DynamicArrayNew)>,
113 ),
114}
115
116#[derive(Clone, Debug, PartialEq, Node)]
117pub struct VariableDeclAssignmentClass {
118 pub nodes: (ClassVariableIdentifier, (Symbol, ClassNew)),
119}
120
121#[derive(Clone, Debug, PartialEq, Node)]
122pub enum ClassNew {
123 Argument(Box<ClassNewArgument>),
124 Expression(Box<ClassNewExpression>),
125}
126
127#[derive(Clone, Debug, PartialEq, Node)]
128pub struct ClassNewArgument {
129 pub nodes: (Option<ClassScope>, Keyword, Option<Paren<ListOfArguments>>),
130}
131
132#[derive(Clone, Debug, PartialEq, Node)]
133pub struct ClassNewExpression {
134 pub nodes: (Keyword, Expression),
135}
136
137#[derive(Clone, Debug, PartialEq, Node)]
138pub struct DynamicArrayNew {
139 pub nodes: (Keyword, Bracket<Expression>, Option<Paren<Expression>>),
140}