HeaderElement (Root Class--any header entity that's significant) | (to HeaderDoc is a HeaderElement) | | |-----------APIOwner (Object that owns declared API) | | | |-------Header (Owner for header-wide API) | | | |-------CPPClass (Owner for C++ class API) | | | |-------ObjCContainer | | | | | |-------ObjCClass (Owner for Objective-C class API) | | | |-------ObjCCategory (Owner for Objective-C category API) | | | |-------ObjCProtocol (Owner for Objective-C protocol API) | | |-----------Method (an Objective-C method) | |-----------Constant | |-----------Enum | |-----------Function (a C function or a C++ member function) | |-----------MinorAPIElement (parameter, members of structs) | |-----------PDefine | |-----------Struct | | | |-------Var (subclass of Struct so that it can contain fields) | |-----------Typedef DocReference (Another root class. Used by gatherHeaderDoc to store information about documentation framesets within an input folder. The script uses this information to construct a top-level table of contents with links to each frameset.)
headerDoc2HTML also uses the non object-oriented module, Utilities.pm.