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