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 }