3 // This file is part of class-dump, a utility for examining the Objective-C segment of Mach-O files.
4 // Copyright (C) 1997-2019 Steve Nygard.
8 #import "CDClassDump.h"
10 @implementation CDVisitor
12 CDClassDump *_classDump;
13 BOOL _shouldShowStructureSection;
14 BOOL _shouldShowProtocolSection;
19 if ((self = [super init])) {
20 _shouldShowStructureSection = YES;
21 _shouldShowProtocolSection = YES;
29 - (void)willBeginVisiting;
33 - (void)didEndVisiting;
37 // Called before visiting.
38 - (void)willVisitObjectiveCProcessor:(CDObjectiveCProcessor *)processor;
42 // This gets called before visiting the children, but only if it has children it will visit.
43 - (void)visitObjectiveCProcessor:(CDObjectiveCProcessor *)processor;
47 - (void)willVisitPropertiesOfProtocol:(CDOCProtocol *)protocol;
51 - (void)didVisitPropertiesOfProtocol:(CDOCProtocol *)protocol;
55 - (void)willVisitOptionalMethods;
59 - (void)didVisitOptionalMethods;
63 // Called after visiting.
64 - (void)didVisitObjectiveCProcessor:(CDObjectiveCProcessor *)processor;
68 - (void)willVisitProtocol:(CDOCProtocol *)protocol;
72 - (void)didVisitProtocol:(CDOCProtocol *)protocol;
76 - (void)willVisitClass:(CDOCClass *)aClass;
80 - (void)didVisitClass:(CDOCClass *)aClass;
84 - (void)willVisitIvarsOfClass:(CDOCClass *)aClass;
88 - (void)didVisitIvarsOfClass:(CDOCClass *)aClass;
92 - (void)willVisitPropertiesOfClass:(CDOCClass *)aClass;
96 - (void)didVisitPropertiesOfClass:(CDOCClass *)aClass;
100 - (void)willVisitCategory:(CDOCCategory *)category;
104 - (void)didVisitCategory:(CDOCCategory *)category;
108 - (void)willVisitPropertiesOfCategory:(CDOCCategory *)category;
112 - (void)didVisitPropertiesOfCategory:(CDOCCategory *)category;
116 - (void)visitClassMethod:(CDOCMethod *)method;
120 - (void)visitInstanceMethod:(CDOCMethod *)method propertyState:(CDVisitorPropertyState *)propertyState;
124 - (void)visitIvar:(CDOCInstanceVariable *)ivar;
128 - (void)visitProperty:(CDOCProperty *)property;
132 - (void)visitRemainingProperties:(CDVisitorPropertyState *)propertyState;