1 /**
2 Copyright: Copyright (c) 2016-2021, Joakim Brännström. All rights reserved.
3 License: MPL-2
4 Author: Joakim Brännström (joakim.brannstrom@gmx.com)
5 
6 This Source Code Form is subject to the terms of the Mozilla Public License,
7 v.2.0. If a copy of the MPL was not distributed with this file, You can obtain
8 one at http://mozilla.org/MPL/2.0/.
9 
10 DO NOT EDIT. THIS FILE IS GENERATED.
11 See the generator script source/devtool/generator_clang_ast_nodes.d
12 */
13 module libclang_ast.ast.base_visitor;
14 abstract class Visitor {
15     import libclang_ast.ast;
16 
17 @safe:
18 
19     /// Called when entering a node
20     void incr() scope {
21     }
22 
23     /// Called when leaving a node
24     void decr() scope {
25     }
26 
27     void visit(scope const TranslationUnit) {
28     }
29 
30     void visit(scope const Attribute) {}
31 
32     void visit(scope const UnexposedAttr value) {
33         visit(cast(const(Attribute)) value);
34     }
35 
36     void visit(scope const IbActionAttr value) {
37         visit(cast(const(Attribute)) value);
38     }
39 
40     void visit(scope const IbOutletAttr value) {
41         visit(cast(const(Attribute)) value);
42     }
43 
44     void visit(scope const IbOutletCollectionAttr value) {
45         visit(cast(const(Attribute)) value);
46     }
47 
48     void visit(scope const CxxFinalAttr value) {
49         visit(cast(const(Attribute)) value);
50     }
51 
52     void visit(scope const CxxOverrideAttr value) {
53         visit(cast(const(Attribute)) value);
54     }
55 
56     void visit(scope const AnnotateAttr value) {
57         visit(cast(const(Attribute)) value);
58     }
59 
60     void visit(scope const AsmLabelAttr value) {
61         visit(cast(const(Attribute)) value);
62     }
63 
64     void visit(scope const PackedAttr value) {
65         visit(cast(const(Attribute)) value);
66     }
67 
68     void visit(scope const PureAttr value) {
69         visit(cast(const(Attribute)) value);
70     }
71 
72     void visit(scope const ConstAttr value) {
73         visit(cast(const(Attribute)) value);
74     }
75 
76     void visit(scope const NoDuplicateAttr value) {
77         visit(cast(const(Attribute)) value);
78     }
79 
80     void visit(scope const CudaConstantAttr value) {
81         visit(cast(const(Attribute)) value);
82     }
83 
84     void visit(scope const CudaDeviceAttr value) {
85         visit(cast(const(Attribute)) value);
86     }
87 
88     void visit(scope const CudaGlobalAttr value) {
89         visit(cast(const(Attribute)) value);
90     }
91 
92     void visit(scope const CudaHostAttr value) {
93         visit(cast(const(Attribute)) value);
94     }
95 
96     void visit(scope const CudaSharedAttr value) {
97         visit(cast(const(Attribute)) value);
98     }
99 
100     void visit(scope const VisibilityAttr value) {
101         visit(cast(const(Attribute)) value);
102     }
103 
104     void visit(scope const DllExport value) {
105         visit(cast(const(Attribute)) value);
106     }
107 
108     void visit(scope const DllImport value) {
109         visit(cast(const(Attribute)) value);
110     }
111 
112     void visit(scope const Declaration) {}
113 
114     void visit(scope const UnexposedDecl value) {
115         visit(cast(const(Declaration)) value);
116     }
117 
118     void visit(scope const StructDecl value) {
119         visit(cast(const(Declaration)) value);
120     }
121 
122     void visit(scope const UnionDecl value) {
123         visit(cast(const(Declaration)) value);
124     }
125 
126     void visit(scope const ClassDecl value) {
127         visit(cast(const(Declaration)) value);
128     }
129 
130     void visit(scope const EnumDecl value) {
131         visit(cast(const(Declaration)) value);
132     }
133 
134     void visit(scope const FieldDecl value) {
135         visit(cast(const(Declaration)) value);
136     }
137 
138     void visit(scope const EnumConstantDecl value) {
139         visit(cast(const(Declaration)) value);
140     }
141 
142     void visit(scope const FunctionDecl value) {
143         visit(cast(const(Declaration)) value);
144     }
145 
146     void visit(scope const VarDecl value) {
147         visit(cast(const(Declaration)) value);
148     }
149 
150     void visit(scope const ParmDecl value) {
151         visit(cast(const(Declaration)) value);
152     }
153 
154     void visit(scope const ObjCInterfaceDecl value) {
155         visit(cast(const(Declaration)) value);
156     }
157 
158     void visit(scope const ObjCCategoryDecl value) {
159         visit(cast(const(Declaration)) value);
160     }
161 
162     void visit(scope const ObjCProtocolDecl value) {
163         visit(cast(const(Declaration)) value);
164     }
165 
166     void visit(scope const ObjCPropertyDecl value) {
167         visit(cast(const(Declaration)) value);
168     }
169 
170     void visit(scope const ObjCIvarDecl value) {
171         visit(cast(const(Declaration)) value);
172     }
173 
174     void visit(scope const ObjCInstanceMethodDecl value) {
175         visit(cast(const(Declaration)) value);
176     }
177 
178     void visit(scope const ObjCClassMethodDecl value) {
179         visit(cast(const(Declaration)) value);
180     }
181 
182     void visit(scope const ObjCImplementationDecl value) {
183         visit(cast(const(Declaration)) value);
184     }
185 
186     void visit(scope const ObjCCategoryImplDecl value) {
187         visit(cast(const(Declaration)) value);
188     }
189 
190     void visit(scope const TypedefDecl value) {
191         visit(cast(const(Declaration)) value);
192     }
193 
194     void visit(scope const CxxMethod value) {
195         visit(cast(const(Declaration)) value);
196     }
197 
198     void visit(scope const Namespace value) {
199         visit(cast(const(Declaration)) value);
200     }
201 
202     void visit(scope const LinkageSpec value) {
203         visit(cast(const(Declaration)) value);
204     }
205 
206     void visit(scope const Constructor value) {
207         visit(cast(const(Declaration)) value);
208     }
209 
210     void visit(scope const Destructor value) {
211         visit(cast(const(Declaration)) value);
212     }
213 
214     void visit(scope const ConversionFunction value) {
215         visit(cast(const(Declaration)) value);
216     }
217 
218     void visit(scope const TemplateTypeParameter value) {
219         visit(cast(const(Declaration)) value);
220     }
221 
222     void visit(scope const NonTypeTemplateParameter value) {
223         visit(cast(const(Declaration)) value);
224     }
225 
226     void visit(scope const TemplateTemplateParameter value) {
227         visit(cast(const(Declaration)) value);
228     }
229 
230     void visit(scope const FunctionTemplate value) {
231         visit(cast(const(Declaration)) value);
232     }
233 
234     void visit(scope const ClassTemplate value) {
235         visit(cast(const(Declaration)) value);
236     }
237 
238     void visit(scope const ClassTemplatePartialSpecialization value) {
239         visit(cast(const(Declaration)) value);
240     }
241 
242     void visit(scope const NamespaceAlias value) {
243         visit(cast(const(Declaration)) value);
244     }
245 
246     void visit(scope const UsingDirective value) {
247         visit(cast(const(Declaration)) value);
248     }
249 
250     void visit(scope const TypeAliasDecl value) {
251         visit(cast(const(Declaration)) value);
252     }
253 
254     void visit(scope const ObjCSynthesizeDecl value) {
255         visit(cast(const(Declaration)) value);
256     }
257 
258     void visit(scope const ObjCDynamicDecl value) {
259         visit(cast(const(Declaration)) value);
260     }
261 
262     void visit(scope const CxxAccessSpecifier value) {
263         visit(cast(const(Declaration)) value);
264     }
265 
266     void visit(scope const Directive) {}
267 
268     void visit(scope const OmpParallelDirective value) {
269         visit(cast(const(Directive)) value);
270     }
271 
272     void visit(scope const OmpSimdDirective value) {
273         visit(cast(const(Directive)) value);
274     }
275 
276     void visit(scope const OmpForDirective value) {
277         visit(cast(const(Directive)) value);
278     }
279 
280     void visit(scope const OmpSectionsDirective value) {
281         visit(cast(const(Directive)) value);
282     }
283 
284     void visit(scope const OmpSectionDirective value) {
285         visit(cast(const(Directive)) value);
286     }
287 
288     void visit(scope const OmpSingleDirective value) {
289         visit(cast(const(Directive)) value);
290     }
291 
292     void visit(scope const OmpParallelForDirective value) {
293         visit(cast(const(Directive)) value);
294     }
295 
296     void visit(scope const OmpParallelSectionsDirective value) {
297         visit(cast(const(Directive)) value);
298     }
299 
300     void visit(scope const OmpTaskDirective value) {
301         visit(cast(const(Directive)) value);
302     }
303 
304     void visit(scope const OmpMasterDirective value) {
305         visit(cast(const(Directive)) value);
306     }
307 
308     void visit(scope const OmpCriticalDirective value) {
309         visit(cast(const(Directive)) value);
310     }
311 
312     void visit(scope const OmpTaskyieldDirective value) {
313         visit(cast(const(Directive)) value);
314     }
315 
316     void visit(scope const OmpBarrierDirective value) {
317         visit(cast(const(Directive)) value);
318     }
319 
320     void visit(scope const OmpTaskwaitDirective value) {
321         visit(cast(const(Directive)) value);
322     }
323 
324     void visit(scope const OmpFlushDirective value) {
325         visit(cast(const(Directive)) value);
326     }
327 
328     void visit(scope const OmpOrderedDirective value) {
329         visit(cast(const(Directive)) value);
330     }
331 
332     void visit(scope const OmpAtomicDirective value) {
333         visit(cast(const(Directive)) value);
334     }
335 
336     void visit(scope const OmpForSimdDirective value) {
337         visit(cast(const(Directive)) value);
338     }
339 
340     void visit(scope const OmpParallelForSimdDirective value) {
341         visit(cast(const(Directive)) value);
342     }
343 
344     void visit(scope const OmpTargetDirective value) {
345         visit(cast(const(Directive)) value);
346     }
347 
348     void visit(scope const OmpTeamsDirective value) {
349         visit(cast(const(Directive)) value);
350     }
351 
352     void visit(scope const OmpTaskgroupDirective value) {
353         visit(cast(const(Directive)) value);
354     }
355 
356     void visit(scope const OmpCancellationPointDirective value) {
357         visit(cast(const(Directive)) value);
358     }
359 
360     void visit(scope const OmpCancelDirective value) {
361         visit(cast(const(Directive)) value);
362     }
363 
364     void visit(scope const OmpTargetDataDirective value) {
365         visit(cast(const(Directive)) value);
366     }
367 
368     void visit(scope const OmpTaskLoopDirective value) {
369         visit(cast(const(Directive)) value);
370     }
371 
372     void visit(scope const OmpTaskLoopSimdDirective value) {
373         visit(cast(const(Directive)) value);
374     }
375 
376     void visit(scope const OmpDistributeDirective value) {
377         visit(cast(const(Directive)) value);
378     }
379 
380     void visit(scope const OmpTargetEnterDataDirective value) {
381         visit(cast(const(Directive)) value);
382     }
383 
384     void visit(scope const OmpTargetExitDataDirective value) {
385         visit(cast(const(Directive)) value);
386     }
387 
388     void visit(scope const OmpTargetParallelDirective value) {
389         visit(cast(const(Directive)) value);
390     }
391 
392     void visit(scope const OmpTargetParallelForDirective value) {
393         visit(cast(const(Directive)) value);
394     }
395 
396     void visit(scope const OmpTargetUpdateDirective value) {
397         visit(cast(const(Directive)) value);
398     }
399 
400     void visit(scope const OmpDistributeParallelForDirective value) {
401         visit(cast(const(Directive)) value);
402     }
403 
404     void visit(scope const OmpDistributeParallelForSimdDirective value) {
405         visit(cast(const(Directive)) value);
406     }
407 
408     void visit(scope const OmpDistributeSimdDirective value) {
409         visit(cast(const(Directive)) value);
410     }
411 
412     void visit(scope const OmpTargetParallelForSimdDirective value) {
413         visit(cast(const(Directive)) value);
414     }
415 
416     void visit(scope const OmpTargetSimdDirective value) {
417         visit(cast(const(Directive)) value);
418     }
419 
420     void visit(scope const OmpTeamsDistributeDirective value) {
421         visit(cast(const(Directive)) value);
422     }
423 
424     void visit(scope const OmpTeamsDistributeSimdDirective value) {
425         visit(cast(const(Directive)) value);
426     }
427 
428     void visit(scope const OmpTeamsDistributeParallelForSimdDirective value) {
429         visit(cast(const(Directive)) value);
430     }
431 
432     void visit(scope const OmpTeamsDistributeParallelForDirective value) {
433         visit(cast(const(Directive)) value);
434     }
435 
436     void visit(scope const OmpTargetTeamsDirective value) {
437         visit(cast(const(Directive)) value);
438     }
439 
440     void visit(scope const OmpTargetTeamsDistributeDirective value) {
441         visit(cast(const(Directive)) value);
442     }
443 
444     void visit(scope const OmpTargetTeamsDistributeParallelForDirective value) {
445         visit(cast(const(Directive)) value);
446     }
447 
448     void visit(scope const OmpTargetTeamsDistributeParallelForSimdDirective value) {
449         visit(cast(const(Directive)) value);
450     }
451 
452     void visit(scope const OmpTargetTeamsDistributeSimdDirective value) {
453         visit(cast(const(Directive)) value);
454     }
455 
456     void visit(scope const Expression) {}
457 
458     void visit(scope const UnexposedExpr value) {
459         visit(cast(const(Expression)) value);
460     }
461 
462     void visit(scope const DeclRefExpr value) {
463         visit(cast(const(Expression)) value);
464     }
465 
466     void visit(scope const MemberRefExpr value) {
467         visit(cast(const(Expression)) value);
468     }
469 
470     void visit(scope const CallExpr value) {
471         visit(cast(const(Expression)) value);
472     }
473 
474     void visit(scope const ObjCMessageExpr value) {
475         visit(cast(const(Expression)) value);
476     }
477 
478     void visit(scope const BlockExpr value) {
479         visit(cast(const(Expression)) value);
480     }
481 
482     void visit(scope const IntegerLiteral value) {
483         visit(cast(const(Expression)) value);
484     }
485 
486     void visit(scope const FloatingLiteral value) {
487         visit(cast(const(Expression)) value);
488     }
489 
490     void visit(scope const ImaginaryLiteral value) {
491         visit(cast(const(Expression)) value);
492     }
493 
494     void visit(scope const StringLiteral value) {
495         visit(cast(const(Expression)) value);
496     }
497 
498     void visit(scope const CharacterLiteral value) {
499         visit(cast(const(Expression)) value);
500     }
501 
502     void visit(scope const ParenExpr value) {
503         visit(cast(const(Expression)) value);
504     }
505 
506     void visit(scope const UnaryOperator value) {
507         visit(cast(const(Expression)) value);
508     }
509 
510     void visit(scope const ArraySubscriptExpr value) {
511         visit(cast(const(Expression)) value);
512     }
513 
514     void visit(scope const BinaryOperator value) {
515         visit(cast(const(Expression)) value);
516     }
517 
518     void visit(scope const CompoundAssignOperator value) {
519         visit(cast(const(Expression)) value);
520     }
521 
522     void visit(scope const ConditionalOperator value) {
523         visit(cast(const(Expression)) value);
524     }
525 
526     void visit(scope const CStyleCastExpr value) {
527         visit(cast(const(Expression)) value);
528     }
529 
530     void visit(scope const CompoundLiteralExpr value) {
531         visit(cast(const(Expression)) value);
532     }
533 
534     void visit(scope const InitListExpr value) {
535         visit(cast(const(Expression)) value);
536     }
537 
538     void visit(scope const AddrLabelExpr value) {
539         visit(cast(const(Expression)) value);
540     }
541 
542     void visit(scope const StmtExpr value) {
543         visit(cast(const(Expression)) value);
544     }
545 
546     void visit(scope const GenericSelectionExpr value) {
547         visit(cast(const(Expression)) value);
548     }
549 
550     void visit(scope const GnuNullExpr value) {
551         visit(cast(const(Expression)) value);
552     }
553 
554     void visit(scope const CxxStaticCastExpr value) {
555         visit(cast(const(Expression)) value);
556     }
557 
558     void visit(scope const CxxDynamicCastExpr value) {
559         visit(cast(const(Expression)) value);
560     }
561 
562     void visit(scope const CxxReinterpretCastExpr value) {
563         visit(cast(const(Expression)) value);
564     }
565 
566     void visit(scope const CxxConstCastExpr value) {
567         visit(cast(const(Expression)) value);
568     }
569 
570     void visit(scope const CxxFunctionalCastExpr value) {
571         visit(cast(const(Expression)) value);
572     }
573 
574     void visit(scope const CxxTypeidExpr value) {
575         visit(cast(const(Expression)) value);
576     }
577 
578     void visit(scope const CxxBoolLiteralExpr value) {
579         visit(cast(const(Expression)) value);
580     }
581 
582     void visit(scope const CxxNullPtrLiteralExpr value) {
583         visit(cast(const(Expression)) value);
584     }
585 
586     void visit(scope const CxxThisExpr value) {
587         visit(cast(const(Expression)) value);
588     }
589 
590     void visit(scope const CxxThrowExpr value) {
591         visit(cast(const(Expression)) value);
592     }
593 
594     void visit(scope const CxxNewExpr value) {
595         visit(cast(const(Expression)) value);
596     }
597 
598     void visit(scope const CxxDeleteExpr value) {
599         visit(cast(const(Expression)) value);
600     }
601 
602     void visit(scope const UnaryExpr value) {
603         visit(cast(const(Expression)) value);
604     }
605 
606     void visit(scope const ObjCStringLiteral value) {
607         visit(cast(const(Expression)) value);
608     }
609 
610     void visit(scope const ObjCEncodeExpr value) {
611         visit(cast(const(Expression)) value);
612     }
613 
614     void visit(scope const ObjCSelectorExpr value) {
615         visit(cast(const(Expression)) value);
616     }
617 
618     void visit(scope const ObjCProtocolExpr value) {
619         visit(cast(const(Expression)) value);
620     }
621 
622     void visit(scope const ObjCBridgedCastExpr value) {
623         visit(cast(const(Expression)) value);
624     }
625 
626     void visit(scope const PackExpansionExpr value) {
627         visit(cast(const(Expression)) value);
628     }
629 
630     void visit(scope const SizeOfPackExpr value) {
631         visit(cast(const(Expression)) value);
632     }
633 
634     void visit(scope const LambdaExpr value) {
635         visit(cast(const(Expression)) value);
636     }
637 
638     void visit(scope const ObjCBoolLiteralExpr value) {
639         visit(cast(const(Expression)) value);
640     }
641 
642     void visit(scope const ObjCSelfExpr value) {
643         visit(cast(const(Expression)) value);
644     }
645 
646     void visit(scope const OmpArraySectionExpr value) {
647         visit(cast(const(Expression)) value);
648     }
649 
650     void visit(scope const ObjCAvailabilityCheckExpr value) {
651         visit(cast(const(Expression)) value);
652     }
653 
654     void visit(scope const Extra) {}
655 
656     void visit(scope const ModuleImportDecl value) {
657         visit(cast(const(Extra)) value);
658     }
659 
660     void visit(scope const TypeAliasTemplateDecl value) {
661         visit(cast(const(Extra)) value);
662     }
663 
664     void visit(scope const StaticAssert value) {
665         visit(cast(const(Extra)) value);
666     }
667 
668     void visit(scope const FriendDecl value) {
669         visit(cast(const(Extra)) value);
670     }
671 
672     void visit(scope const Preprocessor) {}
673 
674     void visit(scope const PreprocessingDirective value) {
675         visit(cast(const(Preprocessor)) value);
676     }
677 
678     void visit(scope const MacroDefinition value) {
679         visit(cast(const(Preprocessor)) value);
680     }
681 
682     void visit(scope const MacroExpansion value) {
683         visit(cast(const(Preprocessor)) value);
684     }
685 
686     void visit(scope const InclusionDirective value) {
687         visit(cast(const(Preprocessor)) value);
688     }
689 
690     void visit(scope const Reference) {}
691 
692     void visit(scope const ObjCSuperClassRef value) {
693         visit(cast(const(Reference)) value);
694     }
695 
696     void visit(scope const ObjCProtocolRef value) {
697         visit(cast(const(Reference)) value);
698     }
699 
700     void visit(scope const ObjCClassRef value) {
701         visit(cast(const(Reference)) value);
702     }
703 
704     void visit(scope const TypeRef value) {
705         visit(cast(const(Reference)) value);
706     }
707 
708     void visit(scope const CxxBaseSpecifier value) {
709         visit(cast(const(Reference)) value);
710     }
711 
712     void visit(scope const TemplateRef value) {
713         visit(cast(const(Reference)) value);
714     }
715 
716     void visit(scope const NamespaceRef value) {
717         visit(cast(const(Reference)) value);
718     }
719 
720     void visit(scope const MemberRef value) {
721         visit(cast(const(Reference)) value);
722     }
723 
724     void visit(scope const LabelRef value) {
725         visit(cast(const(Reference)) value);
726     }
727 
728     void visit(scope const OverloadedDeclRef value) {
729         visit(cast(const(Reference)) value);
730     }
731 
732     void visit(scope const VariableRef value) {
733         visit(cast(const(Reference)) value);
734     }
735 
736     void visit(scope const Statement) {}
737 
738     void visit(scope const UnexposedStmt value) {
739         visit(cast(const(Statement)) value);
740     }
741 
742     void visit(scope const LabelStmt value) {
743         visit(cast(const(Statement)) value);
744     }
745 
746     void visit(scope const CompoundStmt value) {
747         visit(cast(const(Statement)) value);
748     }
749 
750     void visit(scope const CaseStmt value) {
751         visit(cast(const(Statement)) value);
752     }
753 
754     void visit(scope const DefaultStmt value) {
755         visit(cast(const(Statement)) value);
756     }
757 
758     void visit(scope const IfStmt value) {
759         visit(cast(const(Statement)) value);
760     }
761 
762     void visit(scope const SwitchStmt value) {
763         visit(cast(const(Statement)) value);
764     }
765 
766     void visit(scope const WhileStmt value) {
767         visit(cast(const(Statement)) value);
768     }
769 
770     void visit(scope const DoStmt value) {
771         visit(cast(const(Statement)) value);
772     }
773 
774     void visit(scope const ForStmt value) {
775         visit(cast(const(Statement)) value);
776     }
777 
778     void visit(scope const GotoStmt value) {
779         visit(cast(const(Statement)) value);
780     }
781 
782     void visit(scope const IndirectGotoStmt value) {
783         visit(cast(const(Statement)) value);
784     }
785 
786     void visit(scope const ContinueStmt value) {
787         visit(cast(const(Statement)) value);
788     }
789 
790     void visit(scope const BreakStmt value) {
791         visit(cast(const(Statement)) value);
792     }
793 
794     void visit(scope const ReturnStmt value) {
795         visit(cast(const(Statement)) value);
796     }
797 
798     void visit(scope const AsmStmt value) {
799         visit(cast(const(Statement)) value);
800     }
801 
802     void visit(scope const ObjCAtTryStmt value) {
803         visit(cast(const(Statement)) value);
804     }
805 
806     void visit(scope const ObjCAtCatchStmt value) {
807         visit(cast(const(Statement)) value);
808     }
809 
810     void visit(scope const ObjCAtFinallyStmt value) {
811         visit(cast(const(Statement)) value);
812     }
813 
814     void visit(scope const ObjCAtThrowStmt value) {
815         visit(cast(const(Statement)) value);
816     }
817 
818     void visit(scope const ObjCAtSynchronizedStmt value) {
819         visit(cast(const(Statement)) value);
820     }
821 
822     void visit(scope const ObjCAutoreleasePoolStmt value) {
823         visit(cast(const(Statement)) value);
824     }
825 
826     void visit(scope const ObjCForCollectionStmt value) {
827         visit(cast(const(Statement)) value);
828     }
829 
830     void visit(scope const CxxCatchStmt value) {
831         visit(cast(const(Statement)) value);
832     }
833 
834     void visit(scope const CxxTryStmt value) {
835         visit(cast(const(Statement)) value);
836     }
837 
838     void visit(scope const CxxForRangeStmt value) {
839         visit(cast(const(Statement)) value);
840     }
841 
842     void visit(scope const SehTryStmt value) {
843         visit(cast(const(Statement)) value);
844     }
845 
846     void visit(scope const SehExceptStmt value) {
847         visit(cast(const(Statement)) value);
848     }
849 
850     void visit(scope const SehFinallyStmt value) {
851         visit(cast(const(Statement)) value);
852     }
853 
854     void visit(scope const MsAsmStmt value) {
855         visit(cast(const(Statement)) value);
856     }
857 
858     void visit(scope const NullStmt value) {
859         visit(cast(const(Statement)) value);
860     }
861 
862     void visit(scope const DeclStmt value) {
863         visit(cast(const(Statement)) value);
864     }
865 
866     void visit(scope const SehLeaveStmt value) {
867         visit(cast(const(Statement)) value);
868     }
869 
870 }