/src/solidity/libsolidity/ast/AST_accept.h
Line | Count | Source |
1 | | /* |
2 | | This file is part of solidity. |
3 | | |
4 | | solidity is free software: you can redistribute it and/or modify |
5 | | it under the terms of the GNU General Public License as published by |
6 | | the Free Software Foundation, either version 3 of the License, or |
7 | | (at your option) any later version. |
8 | | |
9 | | solidity is distributed in the hope that it will be useful, |
10 | | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | | GNU General Public License for more details. |
13 | | |
14 | | You should have received a copy of the GNU General Public License |
15 | | along with solidity. If not, see <http://www.gnu.org/licenses/>. |
16 | | */ |
17 | | // SPDX-License-Identifier: GPL-3.0 |
18 | | /** |
19 | | * @author Christian <c@ethdev.com> |
20 | | * @date 2014 |
21 | | * Implementation of the accept functions of AST nodes, included by AST.cpp to not clutter that |
22 | | * file with these mechanical implementations. |
23 | | */ |
24 | | |
25 | | #pragma once |
26 | | |
27 | | #include <libsolidity/ast/AST.h> |
28 | | #include <libsolidity/ast/ASTVisitor.h> |
29 | | |
30 | | namespace solidity::frontend |
31 | | { |
32 | | |
33 | | void SourceUnit::accept(ASTVisitor& _visitor) |
34 | 23.0k | { |
35 | 23.0k | if (_visitor.visit(*this)) |
36 | 23.0k | listAccept(m_nodes, _visitor); |
37 | 23.0k | _visitor.endVisit(*this); |
38 | 23.0k | } |
39 | | |
40 | | void SourceUnit::accept(ASTConstVisitor& _visitor) const |
41 | 283k | { |
42 | 283k | if (_visitor.visit(*this)) |
43 | 283k | listAccept(m_nodes, _visitor); |
44 | 283k | _visitor.endVisit(*this); |
45 | 283k | } |
46 | | |
47 | | void PragmaDirective::accept(ASTVisitor& _visitor) |
48 | 27.0k | { |
49 | 27.0k | _visitor.visit(*this); |
50 | 27.0k | _visitor.endVisit(*this); |
51 | 27.0k | } |
52 | | |
53 | | void PragmaDirective::accept(ASTConstVisitor& _visitor) const |
54 | 360k | { |
55 | 360k | _visitor.visit(*this); |
56 | 360k | _visitor.endVisit(*this); |
57 | 360k | } |
58 | | |
59 | | void ImportDirective::accept(ASTVisitor& _visitor) |
60 | 1.10k | { |
61 | 1.10k | if (_visitor.visit(*this)) |
62 | 0 | for (SymbolAlias const& symbolAlias: symbolAliases()) |
63 | 0 | if (symbolAlias.symbol) |
64 | 0 | symbolAlias.symbol->accept(_visitor); |
65 | 1.10k | _visitor.endVisit(*this); |
66 | 1.10k | } |
67 | | |
68 | | void ImportDirective::accept(ASTConstVisitor& _visitor) const |
69 | 15.9k | { |
70 | 15.9k | if (_visitor.visit(*this)) |
71 | 12.6k | for (SymbolAlias const& symbolAlias: symbolAliases()) |
72 | 4.17k | if (symbolAlias.symbol) |
73 | 4.17k | symbolAlias.symbol->accept(_visitor); |
74 | 15.9k | _visitor.endVisit(*this); |
75 | 15.9k | } |
76 | | |
77 | | void StructuredDocumentation::accept(ASTVisitor& _visitor) |
78 | 1.32k | { |
79 | 1.32k | _visitor.visit(*this); |
80 | 1.32k | _visitor.endVisit(*this); |
81 | 1.32k | } |
82 | | |
83 | | void StructuredDocumentation::accept(ASTConstVisitor& _visitor) const |
84 | 17.7k | { |
85 | 17.7k | _visitor.visit(*this); |
86 | 17.7k | _visitor.endVisit(*this); |
87 | 17.7k | } |
88 | | |
89 | | void ContractDefinition::accept(ASTVisitor& _visitor) |
90 | 22.8k | { |
91 | 22.8k | if (_visitor.visit(*this)) |
92 | 22.8k | { |
93 | 22.8k | if (m_documentation) |
94 | 101 | m_documentation->accept(_visitor); |
95 | 22.8k | listAccept(m_baseContracts, _visitor); |
96 | 22.8k | if (m_storageLayoutSpecifier) |
97 | 0 | m_storageLayoutSpecifier->accept(_visitor); |
98 | 22.8k | listAccept(m_subNodes, _visitor); |
99 | 22.8k | } |
100 | 22.8k | _visitor.endVisit(*this); |
101 | 22.8k | } |
102 | | |
103 | | void ContractDefinition::accept(ASTConstVisitor& _visitor) const |
104 | 321k | { |
105 | 321k | if (_visitor.visit(*this)) |
106 | 271k | { |
107 | 271k | if (m_documentation) |
108 | 1.02k | m_documentation->accept(_visitor); |
109 | 271k | listAccept(m_baseContracts, _visitor); |
110 | 271k | if (m_storageLayoutSpecifier) |
111 | 0 | m_storageLayoutSpecifier->accept(_visitor); |
112 | 271k | listAccept(m_subNodes, _visitor); |
113 | 271k | } |
114 | 321k | _visitor.endVisit(*this); |
115 | 321k | } |
116 | | |
117 | | void IdentifierPath::accept(ASTVisitor& _visitor) |
118 | 29.0k | { |
119 | 29.0k | _visitor.visit(*this); |
120 | 29.0k | _visitor.endVisit(*this); |
121 | 29.0k | } |
122 | | |
123 | | void IdentifierPath::accept(ASTConstVisitor& _visitor) const |
124 | 402k | { |
125 | 402k | _visitor.visit(*this); |
126 | 402k | _visitor.endVisit(*this); |
127 | 402k | } |
128 | | |
129 | | void InheritanceSpecifier::accept(ASTVisitor& _visitor) |
130 | 4.03k | { |
131 | 4.03k | if (_visitor.visit(*this)) |
132 | 4.03k | { |
133 | 4.03k | m_baseName->accept(_visitor); |
134 | 4.03k | if (m_arguments) |
135 | 144 | listAccept(*m_arguments, _visitor); |
136 | 4.03k | } |
137 | 4.03k | _visitor.endVisit(*this); |
138 | 4.03k | } |
139 | | |
140 | | void InheritanceSpecifier::accept(ASTConstVisitor& _visitor) const |
141 | 44.6k | { |
142 | 44.6k | if (_visitor.visit(*this)) |
143 | 44.5k | { |
144 | 44.5k | m_baseName->accept(_visitor); |
145 | 44.5k | if (m_arguments) |
146 | 1.42k | listAccept(*m_arguments, _visitor); |
147 | 44.5k | } |
148 | 44.6k | _visitor.endVisit(*this); |
149 | 44.6k | } |
150 | | |
151 | | void EnumDefinition::accept(ASTVisitor& _visitor) |
152 | 340 | { |
153 | 340 | if (_visitor.visit(*this)) |
154 | 340 | listAccept(m_members, _visitor); |
155 | 340 | _visitor.endVisit(*this); |
156 | 340 | } |
157 | | |
158 | | void EnumDefinition::accept(ASTConstVisitor& _visitor) const |
159 | 4.22k | { |
160 | 4.22k | if (_visitor.visit(*this)) |
161 | 3.90k | listAccept(m_members, _visitor); |
162 | 4.22k | _visitor.endVisit(*this); |
163 | 4.22k | } |
164 | | |
165 | | void EnumValue::accept(ASTVisitor& _visitor) |
166 | 1.97k | { |
167 | 1.97k | _visitor.visit(*this); |
168 | 1.97k | _visitor.endVisit(*this); |
169 | 1.97k | } |
170 | | |
171 | | void EnumValue::accept(ASTConstVisitor& _visitor) const |
172 | 19.2k | { |
173 | 19.2k | _visitor.visit(*this); |
174 | 19.2k | _visitor.endVisit(*this); |
175 | 19.2k | } |
176 | | |
177 | | void UserDefinedValueTypeDefinition::accept(ASTConstVisitor& _visitor) const |
178 | 5.89k | { |
179 | 5.89k | if (_visitor.visit(*this)) |
180 | 5.89k | { |
181 | 5.89k | if (m_underlyingType) |
182 | 5.89k | m_underlyingType->accept(_visitor); |
183 | 5.89k | } |
184 | 5.89k | _visitor.endVisit(*this); |
185 | 5.89k | } |
186 | | |
187 | | void UserDefinedValueTypeDefinition::accept(ASTVisitor& _visitor) |
188 | 457 | { |
189 | 457 | if (_visitor.visit(*this)) |
190 | 457 | { |
191 | 457 | if (m_underlyingType) |
192 | 457 | m_underlyingType->accept(_visitor); |
193 | 457 | } |
194 | 457 | _visitor.endVisit(*this); |
195 | 457 | } |
196 | | |
197 | | void UsingForDirective::accept(ASTVisitor& _visitor) |
198 | 584 | { |
199 | 584 | if (_visitor.visit(*this)) |
200 | 584 | { |
201 | 584 | listAccept(m_functionsOrLibrary, _visitor); |
202 | 584 | if (m_typeName) |
203 | 476 | m_typeName->accept(_visitor); |
204 | 584 | } |
205 | 584 | _visitor.endVisit(*this); |
206 | 584 | } |
207 | | |
208 | | void UsingForDirective::accept(ASTConstVisitor& _visitor) const |
209 | 7.41k | { |
210 | 7.41k | if (_visitor.visit(*this)) |
211 | 6.04k | { |
212 | 6.04k | listAccept(m_functionsOrLibrary, _visitor); |
213 | 6.04k | if (m_typeName) |
214 | 4.77k | m_typeName->accept(_visitor); |
215 | 6.04k | } |
216 | 7.41k | _visitor.endVisit(*this); |
217 | 7.41k | } |
218 | | |
219 | | void StructDefinition::accept(ASTVisitor& _visitor) |
220 | 9.37k | { |
221 | 9.37k | if (_visitor.visit(*this)) |
222 | 9.37k | listAccept(m_members, _visitor); |
223 | 9.37k | _visitor.endVisit(*this); |
224 | 9.37k | } |
225 | | |
226 | | void StructDefinition::accept(ASTConstVisitor& _visitor) const |
227 | 133k | { |
228 | 133k | if (_visitor.visit(*this)) |
229 | 115k | listAccept(m_members, _visitor); |
230 | 133k | _visitor.endVisit(*this); |
231 | 133k | } |
232 | | |
233 | | void ParameterList::accept(ASTVisitor& _visitor) |
234 | 58.3k | { |
235 | 58.3k | if (_visitor.visit(*this)) |
236 | 58.3k | listAccept(m_parameters, _visitor); |
237 | 58.3k | _visitor.endVisit(*this); |
238 | 58.3k | } |
239 | | |
240 | | void ParameterList::accept(ASTConstVisitor& _visitor) const |
241 | 1.93M | { |
242 | 1.93M | if (_visitor.visit(*this)) |
243 | 1.93M | listAccept(m_parameters, _visitor); |
244 | 1.93M | _visitor.endVisit(*this); |
245 | 1.93M | } |
246 | | |
247 | | void OverrideSpecifier::accept(ASTVisitor& _visitor) |
248 | 906 | { |
249 | 906 | if (_visitor.visit(*this)) |
250 | 906 | listAccept(m_overrides, _visitor); |
251 | 906 | _visitor.endVisit(*this); |
252 | 906 | } |
253 | | |
254 | | void OverrideSpecifier::accept(ASTConstVisitor& _visitor) const |
255 | 18.9k | { |
256 | 18.9k | if (_visitor.visit(*this)) |
257 | 18.9k | listAccept(m_overrides, _visitor); |
258 | 18.9k | _visitor.endVisit(*this); |
259 | 18.9k | } |
260 | | |
261 | | void FunctionDefinition::accept(ASTVisitor& _visitor) |
262 | 24.8k | { |
263 | 24.8k | if (_visitor.visit(*this)) |
264 | 24.8k | { |
265 | 24.8k | if (m_documentation) |
266 | 1.07k | m_documentation->accept(_visitor); |
267 | 24.8k | if (m_overrides) |
268 | 544 | m_overrides->accept(_visitor); |
269 | 24.8k | m_parameters->accept(_visitor); |
270 | 24.8k | if (m_returnParameters) |
271 | 24.7k | m_returnParameters->accept(_visitor); |
272 | 24.8k | if (m_experimentalReturnExpression) |
273 | 4 | m_experimentalReturnExpression->accept(_visitor); |
274 | 24.8k | listAccept(m_functionModifiers, _visitor); |
275 | 24.8k | if (m_body) |
276 | 23.3k | m_body->accept(_visitor); |
277 | 24.8k | } |
278 | 24.8k | _visitor.endVisit(*this); |
279 | 24.8k | } |
280 | | |
281 | | void FunctionDefinition::accept(ASTConstVisitor& _visitor) const |
282 | 970k | { |
283 | 970k | if (_visitor.visit(*this)) |
284 | 860k | { |
285 | 860k | if (m_documentation) |
286 | 14.9k | m_documentation->accept(_visitor); |
287 | 860k | if (m_overrides) |
288 | 15.7k | m_overrides->accept(_visitor); |
289 | 860k | m_parameters->accept(_visitor); |
290 | 860k | if (m_returnParameters) |
291 | 860k | m_returnParameters->accept(_visitor); |
292 | 860k | if (m_experimentalReturnExpression) |
293 | 16 | m_experimentalReturnExpression->accept(_visitor); |
294 | 860k | listAccept(m_functionModifiers, _visitor); |
295 | 860k | if (m_body) |
296 | 843k | m_body->accept(_visitor); |
297 | 860k | } |
298 | 970k | _visitor.endVisit(*this); |
299 | 970k | } |
300 | | |
301 | | void VariableDeclaration::accept(ASTVisitor& _visitor) |
302 | 82.8k | { |
303 | 82.8k | if (_visitor.visit(*this)) |
304 | 82.8k | { |
305 | 82.8k | if (m_typeName) |
306 | 82.6k | m_typeName->accept(_visitor); |
307 | 82.8k | if (m_typeExpression) |
308 | 93 | m_typeExpression->accept(_visitor); |
309 | 82.8k | if (m_overrides) |
310 | 183 | m_overrides->accept(_visitor); |
311 | 82.8k | if (m_value) |
312 | 4.48k | m_value->accept(_visitor); |
313 | 82.8k | } |
314 | 82.8k | _visitor.endVisit(*this); |
315 | 82.8k | } |
316 | | |
317 | | void VariableDeclaration::accept(ASTConstVisitor& _visitor) const |
318 | 2.00M | { |
319 | 2.00M | if (_visitor.visit(*this)) |
320 | 1.78M | { |
321 | 1.78M | if (m_typeName) |
322 | 1.78M | m_typeName->accept(_visitor); |
323 | 1.78M | if (m_typeExpression) |
324 | 242 | m_typeExpression->accept(_visitor); |
325 | 1.78M | if (m_overrides) |
326 | 1.31k | m_overrides->accept(_visitor); |
327 | 1.78M | if (m_value) |
328 | 53.1k | m_value->accept(_visitor); |
329 | 1.78M | } |
330 | 2.00M | _visitor.endVisit(*this); |
331 | 2.00M | } |
332 | | |
333 | | void ModifierDefinition::accept(ASTVisitor& _visitor) |
334 | 2.38k | { |
335 | 2.38k | if (_visitor.visit(*this)) |
336 | 2.38k | { |
337 | 2.38k | if (m_documentation) |
338 | 4 | m_documentation->accept(_visitor); |
339 | 2.38k | m_parameters->accept(_visitor); |
340 | 2.38k | if (m_overrides) |
341 | 179 | m_overrides->accept(_visitor); |
342 | 2.38k | if (m_body) |
343 | 793 | m_body->accept(_visitor); |
344 | 2.38k | } |
345 | 2.38k | _visitor.endVisit(*this); |
346 | 2.38k | } |
347 | | |
348 | | void ModifierDefinition::accept(ASTConstVisitor& _visitor) const |
349 | 24.9k | { |
350 | 24.9k | if (_visitor.visit(*this)) |
351 | 24.2k | { |
352 | 24.2k | if (m_documentation) |
353 | 56 | m_documentation->accept(_visitor); |
354 | 24.2k | m_parameters->accept(_visitor); |
355 | 24.2k | if (m_overrides) |
356 | 1.87k | m_overrides->accept(_visitor); |
357 | 24.2k | if (m_body) |
358 | 11.4k | m_body->accept(_visitor); |
359 | 24.2k | } |
360 | 24.9k | _visitor.endVisit(*this); |
361 | 24.9k | } |
362 | | |
363 | | void ModifierInvocation::accept(ASTVisitor& _visitor) |
364 | 2.16k | { |
365 | 2.16k | if (_visitor.visit(*this)) |
366 | 2.16k | { |
367 | 2.16k | m_modifierName->accept(_visitor); |
368 | 2.16k | if (m_arguments) |
369 | 946 | listAccept(*m_arguments, _visitor); |
370 | 2.16k | } |
371 | 2.16k | _visitor.endVisit(*this); |
372 | 2.16k | } |
373 | | |
374 | | void ModifierInvocation::accept(ASTConstVisitor& _visitor) const |
375 | 62.7k | { |
376 | 62.7k | if (_visitor.visit(*this)) |
377 | 60.7k | { |
378 | 60.7k | m_modifierName->accept(_visitor); |
379 | 60.7k | if (m_arguments) |
380 | 27.5k | listAccept(*m_arguments, _visitor); |
381 | 60.7k | } |
382 | 62.7k | _visitor.endVisit(*this); |
383 | 62.7k | } |
384 | | |
385 | | void EventDefinition::accept(ASTVisitor& _visitor) |
386 | 3.06k | { |
387 | 3.06k | if (_visitor.visit(*this)) |
388 | 3.06k | { |
389 | 3.06k | if (m_documentation) |
390 | 17 | m_documentation->accept(_visitor); |
391 | 3.06k | m_parameters->accept(_visitor); |
392 | 3.06k | } |
393 | 3.06k | _visitor.endVisit(*this); |
394 | 3.06k | } |
395 | | |
396 | | void EventDefinition::accept(ASTConstVisitor& _visitor) const |
397 | 44.0k | { |
398 | 44.0k | if (_visitor.visit(*this)) |
399 | 44.0k | { |
400 | 44.0k | if (m_documentation) |
401 | 219 | m_documentation->accept(_visitor); |
402 | 44.0k | m_parameters->accept(_visitor); |
403 | 44.0k | } |
404 | 44.0k | _visitor.endVisit(*this); |
405 | 44.0k | } |
406 | | |
407 | | void ErrorDefinition::accept(ASTVisitor& _visitor) |
408 | 696 | { |
409 | 696 | if (_visitor.visit(*this)) |
410 | 696 | { |
411 | 696 | if (m_documentation) |
412 | 132 | m_documentation->accept(_visitor); |
413 | 696 | m_parameters->accept(_visitor); |
414 | 696 | } |
415 | 696 | _visitor.endVisit(*this); |
416 | 696 | } |
417 | | |
418 | | void ErrorDefinition::accept(ASTConstVisitor& _visitor) const |
419 | 8.86k | { |
420 | 8.86k | if (_visitor.visit(*this)) |
421 | 8.86k | { |
422 | 8.86k | if (m_documentation) |
423 | 1.46k | m_documentation->accept(_visitor); |
424 | 8.86k | m_parameters->accept(_visitor); |
425 | 8.86k | } |
426 | 8.86k | _visitor.endVisit(*this); |
427 | 8.86k | } |
428 | | |
429 | | void ElementaryTypeName::accept(ASTVisitor& _visitor) |
430 | 65.6k | { |
431 | 65.6k | _visitor.visit(*this); |
432 | 65.6k | _visitor.endVisit(*this); |
433 | 65.6k | } |
434 | | |
435 | | void ElementaryTypeName::accept(ASTConstVisitor& _visitor) const |
436 | 1.67M | { |
437 | 1.67M | _visitor.visit(*this); |
438 | 1.67M | _visitor.endVisit(*this); |
439 | 1.67M | } |
440 | | |
441 | | void UserDefinedTypeName::accept(ASTVisitor& _visitor) |
442 | 20.6k | { |
443 | 20.6k | if (_visitor.visit(*this)) |
444 | 20.6k | this->pathNode().accept(_visitor); |
445 | 20.6k | _visitor.endVisit(*this); |
446 | 20.6k | } |
447 | | |
448 | | void UserDefinedTypeName::accept(ASTConstVisitor& _visitor) const |
449 | 273k | { |
450 | 273k | if (_visitor.visit(*this)) |
451 | 273k | this->pathNode().accept(_visitor); |
452 | 273k | _visitor.endVisit(*this); |
453 | 273k | } |
454 | | |
455 | | void FunctionTypeName::accept(ASTVisitor& _visitor) |
456 | 1.10k | { |
457 | 1.10k | if (_visitor.visit(*this)) |
458 | 1.10k | { |
459 | 1.10k | m_parameterTypes->accept(_visitor); |
460 | 1.10k | m_returnTypes->accept(_visitor); |
461 | 1.10k | } |
462 | 1.10k | _visitor.endVisit(*this); |
463 | 1.10k | } |
464 | | |
465 | | void FunctionTypeName::accept(ASTConstVisitor& _visitor) const |
466 | 31.4k | { |
467 | 31.4k | if (_visitor.visit(*this)) |
468 | 29.8k | { |
469 | 29.8k | m_parameterTypes->accept(_visitor); |
470 | 29.8k | m_returnTypes->accept(_visitor); |
471 | 29.8k | } |
472 | 31.4k | _visitor.endVisit(*this); |
473 | 31.4k | } |
474 | | |
475 | | void Mapping::accept(ASTVisitor& _visitor) |
476 | 946 | { |
477 | 946 | if (_visitor.visit(*this)) |
478 | 946 | { |
479 | 946 | m_keyType->accept(_visitor); |
480 | 946 | m_valueType->accept(_visitor); |
481 | 946 | } |
482 | 946 | _visitor.endVisit(*this); |
483 | 946 | } |
484 | | |
485 | | void Mapping::accept(ASTConstVisitor& _visitor) const |
486 | 18.1k | { |
487 | 18.1k | if (_visitor.visit(*this)) |
488 | 18.1k | { |
489 | 18.1k | m_keyType->accept(_visitor); |
490 | 18.1k | m_valueType->accept(_visitor); |
491 | 18.1k | } |
492 | 18.1k | _visitor.endVisit(*this); |
493 | 18.1k | } |
494 | | |
495 | | void ArrayTypeName::accept(ASTVisitor& _visitor) |
496 | 21.3k | { |
497 | 21.3k | if (_visitor.visit(*this)) |
498 | 21.3k | { |
499 | 21.3k | m_baseType->accept(_visitor); |
500 | 21.3k | if (m_length) |
501 | 6.94k | m_length->accept(_visitor); |
502 | 21.3k | } |
503 | 21.3k | _visitor.endVisit(*this); |
504 | 21.3k | } |
505 | | |
506 | | void ArrayTypeName::accept(ASTConstVisitor& _visitor) const |
507 | 513k | { |
508 | 513k | if (_visitor.visit(*this)) |
509 | 513k | { |
510 | 513k | m_baseType->accept(_visitor); |
511 | 513k | if (m_length) |
512 | 90.0k | m_length->accept(_visitor); |
513 | 513k | } |
514 | 513k | _visitor.endVisit(*this); |
515 | 513k | } |
516 | | |
517 | | void InlineAssembly::accept(ASTVisitor& _visitor) |
518 | 2.58k | { |
519 | 2.58k | _visitor.visit(*this); |
520 | 2.58k | _visitor.endVisit(*this); |
521 | 2.58k | } |
522 | | |
523 | | void InlineAssembly::accept(ASTConstVisitor& _visitor) const |
524 | 109k | { |
525 | 109k | _visitor.visit(*this); |
526 | 109k | _visitor.endVisit(*this); |
527 | 109k | } |
528 | | |
529 | | void Block::accept(ASTVisitor& _visitor) |
530 | 25.7k | { |
531 | 25.7k | if (_visitor.visit(*this)) |
532 | 25.7k | listAccept(m_statements, _visitor); |
533 | 25.7k | _visitor.endVisit(*this); |
534 | 25.7k | } |
535 | | |
536 | | void Block::accept(ASTConstVisitor& _visitor) const |
537 | 1.07M | { |
538 | 1.07M | if (_visitor.visit(*this)) |
539 | 1.05M | listAccept(m_statements, _visitor); |
540 | 1.07M | _visitor.endVisit(*this); |
541 | 1.07M | } |
542 | | |
543 | | void PlaceholderStatement::accept(ASTVisitor& _visitor) |
544 | 810 | { |
545 | 810 | _visitor.visit(*this); |
546 | 810 | _visitor.endVisit(*this); |
547 | 810 | } |
548 | | |
549 | | void PlaceholderStatement::accept(ASTConstVisitor& _visitor) const |
550 | 36.7k | { |
551 | 36.7k | _visitor.visit(*this); |
552 | 36.7k | _visitor.endVisit(*this); |
553 | 36.7k | } |
554 | | |
555 | | void IfStatement::accept(ASTVisitor& _visitor) |
556 | 37.7k | { |
557 | 37.7k | if (_visitor.visit(*this)) |
558 | 37.7k | { |
559 | 37.7k | m_condition->accept(_visitor); |
560 | 37.7k | m_trueBody->accept(_visitor); |
561 | 37.7k | if (m_falseBody) |
562 | 358 | m_falseBody->accept(_visitor); |
563 | 37.7k | } |
564 | 37.7k | _visitor.endVisit(*this); |
565 | 37.7k | } |
566 | | |
567 | | void IfStatement::accept(ASTConstVisitor& _visitor) const |
568 | 629k | { |
569 | 629k | if (_visitor.visit(*this)) |
570 | 514k | { |
571 | 514k | m_condition->accept(_visitor); |
572 | 514k | m_trueBody->accept(_visitor); |
573 | 514k | if (m_falseBody) |
574 | 11.5k | m_falseBody->accept(_visitor); |
575 | 514k | } |
576 | 629k | _visitor.endVisit(*this); |
577 | 629k | } |
578 | | |
579 | | void TryCatchClause::accept(ASTVisitor& _visitor) |
580 | 632 | { |
581 | 632 | if (_visitor.visit(*this)) |
582 | 632 | { |
583 | 632 | if (m_parameters) |
584 | 275 | m_parameters->accept(_visitor); |
585 | 632 | m_block->accept(_visitor); |
586 | 632 | } |
587 | 632 | _visitor.endVisit(*this); |
588 | 632 | } |
589 | | |
590 | | void TryCatchClause::accept(ASTConstVisitor& _visitor) const |
591 | 27.9k | { |
592 | 27.9k | if (_visitor.visit(*this)) |
593 | 27.7k | { |
594 | 27.7k | if (m_parameters) |
595 | 6.59k | m_parameters->accept(_visitor); |
596 | 27.7k | m_block->accept(_visitor); |
597 | 27.7k | } |
598 | 27.9k | _visitor.endVisit(*this); |
599 | 27.9k | } |
600 | | |
601 | | void TryStatement::accept(ASTVisitor& _visitor) |
602 | 241 | { |
603 | 241 | if (_visitor.visit(*this)) |
604 | 241 | { |
605 | 241 | m_externalCall->accept(_visitor); |
606 | 241 | listAccept(m_clauses, _visitor); |
607 | 241 | } |
608 | 241 | _visitor.endVisit(*this); |
609 | 241 | } |
610 | | |
611 | | void TryStatement::accept(ASTConstVisitor& _visitor) const |
612 | 13.4k | { |
613 | 13.4k | if (_visitor.visit(*this)) |
614 | 12.8k | { |
615 | 12.8k | m_externalCall->accept(_visitor); |
616 | 12.8k | listAccept(m_clauses, _visitor); |
617 | 12.8k | } |
618 | 13.4k | _visitor.endVisit(*this); |
619 | 13.4k | } |
620 | | |
621 | | void WhileStatement::accept(ASTVisitor& _visitor) |
622 | 207 | { |
623 | 207 | if (_visitor.visit(*this)) |
624 | 207 | { |
625 | 207 | m_condition->accept(_visitor); |
626 | 207 | m_body->accept(_visitor); |
627 | 207 | } |
628 | 207 | _visitor.endVisit(*this); |
629 | 207 | } |
630 | | |
631 | | void WhileStatement::accept(ASTConstVisitor& _visitor) const |
632 | 19.2k | { |
633 | 19.2k | if (_visitor.visit(*this)) |
634 | 18.3k | { |
635 | 18.3k | m_condition->accept(_visitor); |
636 | 18.3k | m_body->accept(_visitor); |
637 | 18.3k | } |
638 | 19.2k | _visitor.endVisit(*this); |
639 | 19.2k | } |
640 | | |
641 | | void ForStatement::accept(ASTVisitor& _visitor) |
642 | 3.09k | { |
643 | 3.09k | if (_visitor.visit(*this)) |
644 | 3.09k | { |
645 | 3.09k | if (m_initExpression) |
646 | 3.00k | m_initExpression->accept(_visitor); |
647 | 3.09k | if (m_condExpression) |
648 | 3.02k | m_condExpression->accept(_visitor); |
649 | 3.09k | if (m_loopExpression) |
650 | 3.00k | m_loopExpression->accept(_visitor); |
651 | 3.09k | m_body->accept(_visitor); |
652 | 3.09k | } |
653 | 3.09k | _visitor.endVisit(*this); |
654 | 3.09k | } |
655 | | |
656 | | void ForStatement::accept(ASTConstVisitor& _visitor) const |
657 | 118k | { |
658 | 118k | if (_visitor.visit(*this)) |
659 | 107k | { |
660 | 107k | if (m_initExpression) |
661 | 103k | m_initExpression->accept(_visitor); |
662 | 107k | if (m_condExpression) |
663 | 105k | m_condExpression->accept(_visitor); |
664 | 107k | if (m_loopExpression) |
665 | 103k | m_loopExpression->accept(_visitor); |
666 | 107k | m_body->accept(_visitor); |
667 | 107k | } |
668 | 118k | _visitor.endVisit(*this); |
669 | 118k | } |
670 | | |
671 | | void Continue::accept(ASTVisitor& _visitor) |
672 | 87 | { |
673 | 87 | _visitor.visit(*this); |
674 | 87 | _visitor.endVisit(*this); |
675 | 87 | } |
676 | | |
677 | | void Continue::accept(ASTConstVisitor& _visitor) const |
678 | 9.32k | { |
679 | 9.32k | _visitor.visit(*this); |
680 | 9.32k | _visitor.endVisit(*this); |
681 | 9.32k | } |
682 | | |
683 | | void Break::accept(ASTVisitor& _visitor) |
684 | 105 | { |
685 | 105 | _visitor.visit(*this); |
686 | 105 | _visitor.endVisit(*this); |
687 | 105 | } |
688 | | |
689 | | void Break::accept(ASTConstVisitor& _visitor) const |
690 | 11.2k | { |
691 | 11.2k | _visitor.visit(*this); |
692 | 11.2k | _visitor.endVisit(*this); |
693 | 11.2k | } |
694 | | |
695 | | void Return::accept(ASTVisitor& _visitor) |
696 | 45.1k | { |
697 | 45.1k | if (_visitor.visit(*this)) |
698 | 45.1k | if (m_expression) |
699 | 44.9k | m_expression->accept(_visitor); |
700 | 45.1k | _visitor.endVisit(*this); |
701 | 45.1k | } |
702 | | |
703 | | void Return::accept(ASTConstVisitor& _visitor) const |
704 | 915k | { |
705 | 915k | if (_visitor.visit(*this)) |
706 | 827k | if (m_expression) |
707 | 794k | m_expression->accept(_visitor); |
708 | 915k | _visitor.endVisit(*this); |
709 | 915k | } |
710 | | |
711 | | void Throw::accept(ASTVisitor& _visitor) |
712 | 3 | { |
713 | 3 | _visitor.visit(*this); |
714 | 3 | _visitor.endVisit(*this); |
715 | 3 | } |
716 | | |
717 | | void Throw::accept(ASTConstVisitor& _visitor) const |
718 | 17 | { |
719 | 17 | _visitor.visit(*this); |
720 | 17 | _visitor.endVisit(*this); |
721 | 17 | } |
722 | | |
723 | | void RevertStatement::accept(ASTVisitor& _visitor) |
724 | 75 | { |
725 | 75 | if (_visitor.visit(*this)) |
726 | 75 | m_errorCall->accept(_visitor); |
727 | 75 | _visitor.endVisit(*this); |
728 | 75 | } |
729 | | |
730 | | void RevertStatement::accept(ASTConstVisitor& _visitor) const |
731 | 3.36k | { |
732 | 3.36k | if (_visitor.visit(*this)) |
733 | 3.26k | m_errorCall->accept(_visitor); |
734 | 3.36k | _visitor.endVisit(*this); |
735 | 3.36k | } |
736 | | |
737 | | void EmitStatement::accept(ASTVisitor& _visitor) |
738 | 1.34k | { |
739 | 1.34k | if (_visitor.visit(*this)) |
740 | 1.34k | m_eventCall->accept(_visitor); |
741 | 1.34k | _visitor.endVisit(*this); |
742 | 1.34k | } |
743 | | |
744 | | void EmitStatement::accept(ASTConstVisitor& _visitor) const |
745 | 78.6k | { |
746 | 78.6k | if (_visitor.visit(*this)) |
747 | 78.2k | m_eventCall->accept(_visitor); |
748 | 78.6k | _visitor.endVisit(*this); |
749 | 78.6k | } |
750 | | |
751 | | void ExpressionStatement::accept(ASTVisitor& _visitor) |
752 | 47.9k | { |
753 | 47.9k | if (_visitor.visit(*this)) |
754 | 47.9k | if (m_expression) |
755 | 47.9k | m_expression->accept(_visitor); |
756 | 47.9k | _visitor.endVisit(*this); |
757 | 47.9k | } |
758 | | |
759 | | void ExpressionStatement::accept(ASTConstVisitor& _visitor) const |
760 | 1.67M | { |
761 | 1.67M | if (_visitor.visit(*this)) |
762 | 1.63M | if (m_expression) |
763 | 1.63M | m_expression->accept(_visitor); |
764 | 1.67M | _visitor.endVisit(*this); |
765 | 1.67M | } |
766 | | |
767 | | void VariableDeclarationStatement::accept(ASTVisitor& _visitor) |
768 | 10.7k | { |
769 | 10.7k | if (_visitor.visit(*this)) |
770 | 10.7k | { |
771 | 10.7k | for (ASTPointer<VariableDeclaration> const& var: m_variables) |
772 | 11.7k | if (var) |
773 | 11.4k | var->accept(_visitor); |
774 | 10.7k | if (m_initialValue) |
775 | 7.58k | m_initialValue->accept(_visitor); |
776 | 10.7k | } |
777 | 10.7k | _visitor.endVisit(*this); |
778 | 10.7k | } |
779 | | |
780 | | void VariableDeclarationStatement::accept(ASTConstVisitor& _visitor) const |
781 | 373k | { |
782 | 373k | if (_visitor.visit(*this)) |
783 | 348k | { |
784 | 348k | for (ASTPointer<VariableDeclaration> const& var: m_variables) |
785 | 368k | if (var) |
786 | 361k | var->accept(_visitor); |
787 | 348k | if (m_initialValue) |
788 | 257k | m_initialValue->accept(_visitor); |
789 | 348k | } |
790 | 373k | _visitor.endVisit(*this); |
791 | 373k | } |
792 | | |
793 | | void Conditional::accept(ASTVisitor& _visitor) |
794 | 850 | { |
795 | 850 | if (_visitor.visit(*this)) |
796 | 850 | { |
797 | 850 | m_condition->accept(_visitor); |
798 | 850 | m_trueExpression->accept(_visitor); |
799 | 850 | m_falseExpression->accept(_visitor); |
800 | 850 | } |
801 | 850 | _visitor.endVisit(*this); |
802 | 850 | } |
803 | | |
804 | | void Conditional::accept(ASTConstVisitor& _visitor) const |
805 | 38.3k | { |
806 | 38.3k | if (_visitor.visit(*this)) |
807 | 35.1k | { |
808 | 35.1k | m_condition->accept(_visitor); |
809 | 35.1k | m_trueExpression->accept(_visitor); |
810 | 35.1k | m_falseExpression->accept(_visitor); |
811 | 35.1k | } |
812 | 38.3k | _visitor.endVisit(*this); |
813 | 38.3k | } |
814 | | |
815 | | void Assignment::accept(ASTVisitor& _visitor) |
816 | 33.0k | { |
817 | 33.0k | if (_visitor.visit(*this)) |
818 | 33.0k | { |
819 | 33.0k | m_leftHandSide->accept(_visitor); |
820 | 33.0k | m_rightHandSide->accept(_visitor); |
821 | 33.0k | } |
822 | 33.0k | _visitor.endVisit(*this); |
823 | 33.0k | } |
824 | | |
825 | | void Assignment::accept(ASTConstVisitor& _visitor) const |
826 | 864k | { |
827 | 864k | if (_visitor.visit(*this)) |
828 | 783k | { |
829 | 783k | m_leftHandSide->accept(_visitor); |
830 | 783k | m_rightHandSide->accept(_visitor); |
831 | 783k | } |
832 | 864k | _visitor.endVisit(*this); |
833 | 864k | } |
834 | | |
835 | | void TupleExpression::accept(ASTVisitor& _visitor) |
836 | 7.73k | { |
837 | 7.73k | if (_visitor.visit(*this)) |
838 | 7.73k | for (auto const& component: m_components) |
839 | 11.9k | if (component) |
840 | 11.4k | component->accept(_visitor); |
841 | 7.73k | _visitor.endVisit(*this); |
842 | 7.73k | } |
843 | | |
844 | | void TupleExpression::accept(ASTConstVisitor& _visitor) const |
845 | 356k | { |
846 | 356k | if (_visitor.visit(*this)) |
847 | 344k | for (auto const& component: m_components) |
848 | 532k | if (component) |
849 | 524k | component->accept(_visitor); |
850 | 356k | _visitor.endVisit(*this); |
851 | 356k | } |
852 | | |
853 | | void UnaryOperation::accept(ASTVisitor& _visitor) |
854 | 35.7k | { |
855 | 35.7k | if (_visitor.visit(*this)) |
856 | 35.7k | m_subExpression->accept(_visitor); |
857 | 35.7k | _visitor.endVisit(*this); |
858 | 35.7k | } |
859 | | |
860 | | void UnaryOperation::accept(ASTConstVisitor& _visitor) const |
861 | 4.58M | { |
862 | 4.58M | if (_visitor.visit(*this)) |
863 | 4.53M | m_subExpression->accept(_visitor); |
864 | 4.58M | _visitor.endVisit(*this); |
865 | 4.58M | } |
866 | | |
867 | | void BinaryOperation::accept(ASTVisitor& _visitor) |
868 | 84.7k | { |
869 | 84.7k | if (_visitor.visit(*this)) |
870 | 84.7k | { |
871 | 84.7k | m_left->accept(_visitor); |
872 | 84.7k | m_right->accept(_visitor); |
873 | 84.7k | } |
874 | 84.7k | _visitor.endVisit(*this); |
875 | 84.7k | } |
876 | | |
877 | | void BinaryOperation::accept(ASTConstVisitor& _visitor) const |
878 | 2.30M | { |
879 | 2.30M | if (_visitor.visit(*this)) |
880 | 2.25M | { |
881 | 2.25M | m_left->accept(_visitor); |
882 | 2.25M | m_right->accept(_visitor); |
883 | 2.25M | } |
884 | 2.30M | _visitor.endVisit(*this); |
885 | 2.30M | } |
886 | | |
887 | | void FunctionCall::accept(ASTVisitor& _visitor) |
888 | 36.0k | { |
889 | 36.0k | if (_visitor.visit(*this)) |
890 | 36.0k | { |
891 | 36.0k | m_expression->accept(_visitor); |
892 | 36.0k | listAccept(m_arguments, _visitor); |
893 | 36.0k | } |
894 | 36.0k | _visitor.endVisit(*this); |
895 | 36.0k | } |
896 | | |
897 | | void FunctionCall::accept(ASTConstVisitor& _visitor) const |
898 | 1.13M | { |
899 | 1.13M | if (_visitor.visit(*this)) |
900 | 1.06M | { |
901 | 1.06M | m_expression->accept(_visitor); |
902 | 1.06M | listAccept(m_arguments, _visitor); |
903 | 1.06M | } |
904 | 1.13M | _visitor.endVisit(*this); |
905 | 1.13M | } |
906 | | |
907 | | void FunctionCallOptions::accept(ASTVisitor& _visitor) |
908 | 277 | { |
909 | 277 | if (_visitor.visit(*this)) |
910 | 277 | { |
911 | 277 | m_expression->accept(_visitor); |
912 | 277 | listAccept(m_options, _visitor); |
913 | 277 | } |
914 | 277 | _visitor.endVisit(*this); |
915 | 277 | } |
916 | | |
917 | | void FunctionCallOptions::accept(ASTConstVisitor& _visitor) const |
918 | 9.20k | { |
919 | 9.20k | if (_visitor.visit(*this)) |
920 | 8.85k | { |
921 | 8.85k | m_expression->accept(_visitor); |
922 | 8.85k | listAccept(m_options, _visitor); |
923 | 8.85k | } |
924 | 9.20k | _visitor.endVisit(*this); |
925 | 9.20k | } |
926 | | |
927 | | void NewExpression::accept(ASTVisitor& _visitor) |
928 | 2.86k | { |
929 | 2.86k | if (_visitor.visit(*this)) |
930 | 2.86k | m_typeName->accept(_visitor); |
931 | 2.86k | _visitor.endVisit(*this); |
932 | 2.86k | } |
933 | | |
934 | | void NewExpression::accept(ASTConstVisitor& _visitor) const |
935 | 96.3k | { |
936 | 96.3k | if (_visitor.visit(*this)) |
937 | 94.4k | m_typeName->accept(_visitor); |
938 | 96.3k | _visitor.endVisit(*this); |
939 | 96.3k | } |
940 | | |
941 | | void MemberAccess::accept(ASTVisitor& _visitor) |
942 | 164k | { |
943 | 164k | if (_visitor.visit(*this)) |
944 | 164k | m_expression->accept(_visitor); |
945 | 164k | _visitor.endVisit(*this); |
946 | 164k | } |
947 | | |
948 | | void MemberAccess::accept(ASTConstVisitor& _visitor) const |
949 | 2.80M | { |
950 | 2.80M | if (_visitor.visit(*this)) |
951 | 2.47M | m_expression->accept(_visitor); |
952 | 2.80M | _visitor.endVisit(*this); |
953 | 2.80M | } |
954 | | |
955 | | void IndexAccess::accept(ASTVisitor& _visitor) |
956 | 120k | { |
957 | 120k | if (_visitor.visit(*this)) |
958 | 120k | { |
959 | 120k | m_base->accept(_visitor); |
960 | 120k | if (m_index) |
961 | 119k | m_index->accept(_visitor); |
962 | 120k | } |
963 | 120k | _visitor.endVisit(*this); |
964 | 120k | } |
965 | | |
966 | | void IndexAccess::accept(ASTConstVisitor& _visitor) const |
967 | 2.79M | { |
968 | 2.79M | if (_visitor.visit(*this)) |
969 | 2.56M | { |
970 | 2.56M | m_base->accept(_visitor); |
971 | 2.56M | if (m_index) |
972 | 2.56M | m_index->accept(_visitor); |
973 | 2.56M | } |
974 | 2.79M | _visitor.endVisit(*this); |
975 | 2.79M | } |
976 | | |
977 | | void IndexRangeAccess::accept(ASTVisitor& _visitor) |
978 | 842 | { |
979 | 842 | if (_visitor.visit(*this)) |
980 | 842 | { |
981 | 842 | m_base->accept(_visitor); |
982 | 842 | if (m_start) |
983 | 573 | m_start->accept(_visitor); |
984 | 842 | if (m_end) |
985 | 426 | m_end->accept(_visitor); |
986 | 842 | } |
987 | 842 | _visitor.endVisit(*this); |
988 | 842 | } |
989 | | |
990 | | void IndexRangeAccess::accept(ASTConstVisitor& _visitor) const |
991 | 27.7k | { |
992 | 27.7k | if (_visitor.visit(*this)) |
993 | 26.7k | { |
994 | 26.7k | m_base->accept(_visitor); |
995 | 26.7k | if (m_start) |
996 | 22.2k | m_start->accept(_visitor); |
997 | 26.7k | if (m_end) |
998 | 15.3k | m_end->accept(_visitor); |
999 | 26.7k | } |
1000 | 27.7k | _visitor.endVisit(*this); |
1001 | 27.7k | } |
1002 | | |
1003 | | void Identifier::accept(ASTVisitor& _visitor) |
1004 | 143k | { |
1005 | 143k | _visitor.visit(*this); |
1006 | 143k | _visitor.endVisit(*this); |
1007 | 143k | } |
1008 | | |
1009 | | void Identifier::accept(ASTConstVisitor& _visitor) const |
1010 | 4.70M | { |
1011 | 4.70M | _visitor.visit(*this); |
1012 | 4.70M | _visitor.endVisit(*this); |
1013 | 4.70M | } |
1014 | | |
1015 | | void ElementaryTypeNameExpression::accept(ASTVisitor& _visitor) |
1016 | 10.3k | { |
1017 | 10.3k | _visitor.visit(*this); |
1018 | 10.3k | _visitor.endVisit(*this); |
1019 | 10.3k | } |
1020 | | |
1021 | | void ElementaryTypeNameExpression::accept(ASTConstVisitor& _visitor) const |
1022 | 281k | { |
1023 | 281k | _visitor.visit(*this); |
1024 | 281k | _visitor.endVisit(*this); |
1025 | 281k | } |
1026 | | |
1027 | | void Literal::accept(ASTVisitor& _visitor) |
1028 | 286k | { |
1029 | 286k | _visitor.visit(*this); |
1030 | 286k | _visitor.endVisit(*this); |
1031 | 286k | } |
1032 | | |
1033 | | void Literal::accept(ASTConstVisitor& _visitor) const |
1034 | 6.60M | { |
1035 | 6.60M | _visitor.visit(*this); |
1036 | 6.60M | _visitor.endVisit(*this); |
1037 | 6.60M | } |
1038 | | |
1039 | | /// Experimental Solidity nodes |
1040 | | /// @{ |
1041 | | void TypeClassDefinition::accept(ASTVisitor& _visitor) |
1042 | 12 | { |
1043 | 12 | if (_visitor.visit(*this)) |
1044 | 12 | { |
1045 | 12 | m_typeVariable->accept(_visitor); |
1046 | 12 | if (m_documentation) |
1047 | 0 | m_documentation->accept(_visitor); |
1048 | 12 | listAccept(m_subNodes, _visitor); |
1049 | 12 | } |
1050 | 12 | _visitor.endVisit(*this); |
1051 | 12 | } |
1052 | | |
1053 | | void TypeClassDefinition::accept(ASTConstVisitor& _visitor) const |
1054 | 59 | { |
1055 | 59 | if (_visitor.visit(*this)) |
1056 | 48 | { |
1057 | 48 | m_typeVariable->accept(_visitor); |
1058 | 48 | if (m_documentation) |
1059 | 0 | m_documentation->accept(_visitor); |
1060 | 48 | listAccept(m_subNodes, _visitor); |
1061 | 48 | } |
1062 | 59 | _visitor.endVisit(*this); |
1063 | 59 | } |
1064 | | |
1065 | | void TypeClassInstantiation::accept(ASTVisitor& _visitor) |
1066 | 11 | { |
1067 | 11 | if (_visitor.visit(*this)) |
1068 | 11 | { |
1069 | 11 | m_typeConstructor->accept(_visitor); |
1070 | 11 | if (m_argumentSorts) |
1071 | 3 | m_argumentSorts->accept(_visitor); |
1072 | 11 | m_class->accept(_visitor); |
1073 | 11 | listAccept(m_subNodes, _visitor); |
1074 | 11 | } |
1075 | 11 | _visitor.endVisit(*this); |
1076 | 11 | } |
1077 | | |
1078 | | void TypeClassInstantiation::accept(ASTConstVisitor& _visitor) const |
1079 | 54 | { |
1080 | 54 | if (_visitor.visit(*this)) |
1081 | 44 | { |
1082 | 44 | m_typeConstructor->accept(_visitor); |
1083 | 44 | if (m_argumentSorts) |
1084 | 11 | m_argumentSorts->accept(_visitor); |
1085 | 44 | m_class->accept(_visitor); |
1086 | 44 | listAccept(m_subNodes, _visitor); |
1087 | 44 | } |
1088 | 54 | _visitor.endVisit(*this); |
1089 | 54 | } |
1090 | | |
1091 | | void TypeDefinition::accept(ASTVisitor& _visitor) |
1092 | 75 | { |
1093 | 75 | if (_visitor.visit(*this)) |
1094 | 75 | { |
1095 | 75 | if (m_arguments) |
1096 | 17 | m_arguments->accept(_visitor); |
1097 | 75 | if (m_typeExpression) |
1098 | 25 | m_typeExpression->accept(_visitor); |
1099 | 75 | } |
1100 | 75 | _visitor.endVisit(*this); |
1101 | 75 | } |
1102 | | |
1103 | | void TypeDefinition::accept(ASTConstVisitor& _visitor) const |
1104 | 351 | { |
1105 | 351 | if (_visitor.visit(*this)) |
1106 | 295 | { |
1107 | 295 | if (m_arguments) |
1108 | 68 | m_arguments->accept(_visitor); |
1109 | 295 | if (m_typeExpression) |
1110 | 96 | m_typeExpression->accept(_visitor); |
1111 | 295 | } |
1112 | 351 | _visitor.endVisit(*this); |
1113 | 351 | } |
1114 | | |
1115 | | |
1116 | | void TypeClassName::accept(ASTVisitor& _visitor) |
1117 | 11 | { |
1118 | 11 | if (_visitor.visit(*this)) |
1119 | 11 | { |
1120 | 11 | if (auto* path = std::get_if<ASTPointer<IdentifierPath>>(&m_name)) |
1121 | 11 | (*path)->accept(_visitor); |
1122 | 11 | } |
1123 | 11 | _visitor.endVisit(*this); |
1124 | 11 | } |
1125 | | |
1126 | | void TypeClassName::accept(ASTConstVisitor& _visitor) const |
1127 | 43 | { |
1128 | 43 | if (_visitor.visit(*this)) |
1129 | 43 | { |
1130 | 43 | if (auto* path = std::get_if<ASTPointer<IdentifierPath>>(&m_name)) |
1131 | 43 | (*path)->accept(_visitor); |
1132 | 43 | } |
1133 | 43 | _visitor.endVisit(*this); |
1134 | 43 | } |
1135 | | |
1136 | | void Builtin::accept(ASTVisitor& _visitor) |
1137 | 19 | { |
1138 | 19 | _visitor.visit(*this); |
1139 | 19 | _visitor.endVisit(*this); |
1140 | 19 | } |
1141 | | |
1142 | | void Builtin::accept(ASTConstVisitor& _visitor) const |
1143 | 74 | { |
1144 | 74 | _visitor.visit(*this); |
1145 | 74 | _visitor.endVisit(*this); |
1146 | 74 | } |
1147 | | |
1148 | | void ForAllQuantifier::accept(ASTVisitor& _visitor) |
1149 | 8 | { |
1150 | 8 | if (_visitor.visit(*this)) |
1151 | 8 | { |
1152 | 8 | m_typeVariableDeclarations->accept(_visitor); |
1153 | 8 | m_quantifiedDeclaration->accept(_visitor); |
1154 | 8 | } |
1155 | 8 | _visitor.endVisit(*this); |
1156 | 8 | } |
1157 | | |
1158 | | void ForAllQuantifier::accept(ASTConstVisitor& _visitor) const |
1159 | 37 | { |
1160 | 37 | if (_visitor.visit(*this)) |
1161 | 32 | { |
1162 | 32 | m_typeVariableDeclarations->accept(_visitor); |
1163 | 32 | m_quantifiedDeclaration->accept(_visitor); |
1164 | 32 | } |
1165 | 37 | _visitor.endVisit(*this); |
1166 | 37 | } |
1167 | | |
1168 | | void StorageLayoutSpecifier::accept(ASTVisitor& _visitor) |
1169 | 0 | { |
1170 | 0 | if (_visitor.visit(*this)) |
1171 | 0 | m_baseSlotExpression->accept(_visitor); |
1172 | |
|
1173 | 0 | _visitor.endVisit(*this); |
1174 | 0 | } |
1175 | | |
1176 | | void StorageLayoutSpecifier::accept(ASTConstVisitor& _visitor) const |
1177 | 0 | { |
1178 | 0 | if (_visitor.visit(*this)) |
1179 | 0 | m_baseSlotExpression->accept(_visitor); |
1180 | |
|
1181 | 0 | _visitor.endVisit(*this); |
1182 | 0 | } |
1183 | | /// @} |
1184 | | |
1185 | | } |