scarf_syntax/declarations/
declaration_assignments.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub struct DefparamAssignment<'a>(
9 pub HierarchicalParameterIdentifier<'a>,
10 pub Metadata<'a>, pub ConstantMintypmaxExpression<'a>,
12);
13
14#[derive(Clone, Debug, PartialEq)]
15pub struct NetDeclAssignment<'a>(
16 pub NetIdentifier<'a>,
17 pub Vec<UnpackedDimension<'a>>,
18 pub Option<(
19 Metadata<'a>, Expression<'a>,
21 )>,
22);
23
24#[derive(Clone, Debug, PartialEq)]
25pub struct ParamAssignment<'a>(
26 pub ParameterIdentifier<'a>,
27 pub Vec<VariableDimension<'a>>,
28 pub Option<(
29 Metadata<'a>, ConstantParamExpression<'a>,
31 )>,
32);
33
34#[derive(Clone, Debug, PartialEq)]
35pub enum SpecparamAssignment<'a> {
36 Base(
37 Box<(
38 SpecparamIdentifier<'a>,
39 Metadata<'a>, ConstantMintypmaxExpression<'a>,
41 )>,
42 ),
43 Pulse(Box<PulseControlSpecparam<'a>>),
44}
45
46#[derive(Clone, Debug, PartialEq)]
52pub enum PulseControlSpecparam<'a> {
53 NonpathSpecific(
54 Box<(
55 Metadata<'a>, Metadata<'a>, Metadata<'a>, RejectLimitValue<'a>,
59 Option<(
60 Metadata<'a>, ErrorLimitValue<'a>,
62 )>,
63 Metadata<'a>, )>,
65 ),
66 PathSpecific(
67 Box<(
68 Identifier<'a>, Metadata<'a>, Metadata<'a>, RejectLimitValue<'a>,
72 Option<(
73 Metadata<'a>, ErrorLimitValue<'a>,
75 )>,
76 Metadata<'a>, )>,
78 ),
79}
80
81#[derive(Clone, Debug, PartialEq)]
82pub struct ErrorLimitValue<'a>(pub LimitValue<'a>);
83
84#[derive(Clone, Debug, PartialEq)]
85pub struct RejectLimitValue<'a>(pub LimitValue<'a>);
86
87#[derive(Clone, Debug, PartialEq)]
88pub struct LimitValue<'a>(pub ConstantMintypmaxExpression<'a>);
89
90#[derive(Clone, Debug, PartialEq)]
91pub struct TypeAssignment<'a>(
92 pub TypeIdentifier<'a>,
93 pub Option<(Metadata<'a>, DataTypeOrIncompleteClassScopedType<'a>)>,
94);
95
96#[derive(Clone, Debug, PartialEq)]
97pub enum VariableDeclAssignment<'a> {
98 Variable(
99 Box<(
100 VariableIdentifier<'a>,
101 Vec<VariableDimension<'a>>,
102 Option<(
103 Metadata<'a>, Expression<'a>,
105 )>,
106 )>,
107 ),
108 DynamicVariable(
109 Box<(
110 DynamicArrayVariableIdentifier<'a>,
111 UnsizedDimension<'a>,
112 Vec<VariableDimension<'a>>,
113 Option<(
114 Metadata<'a>, DynamicArrayNew<'a>,
116 )>,
117 )>,
118 ),
119 ClassVariable(
120 Box<(
121 ClassVariableIdentifier<'a>,
122 Option<(
123 Metadata<'a>, ClassNew<'a>,
125 )>,
126 )>,
127 ),
128}
129
130#[derive(Clone, Debug, PartialEq)]
131pub enum ClassNew<'a> {
132 Args(
133 Box<(
134 Option<ClassScope<'a>>,
135 Metadata<'a>, Option<(
137 Metadata<'a>, ListOfArguments<'a>,
139 Metadata<'a>, )>,
141 )>,
142 ),
143 Expression(
144 Box<(
145 Metadata<'a>, Expression<'a>,
147 )>,
148 ),
149}
150
151#[derive(Clone, Debug, PartialEq)]
152pub struct DynamicArrayNew<'a>(
153 pub Metadata<'a>, pub Metadata<'a>, pub Expression<'a>,
156 pub Metadata<'a>, pub Option<(
158 Metadata<'a>, Expression<'a>,
160 Metadata<'a>, )>,
162);