HeaderDoc Unfettered: HeaderDoc Class Hierarchy

# HeaderDoc Class Hierarchy

| `
`
    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 (Container for all non-Objective-C classes and
| `
`
     | |                    C pseudoclass/COM Interface APIs).
| `
`
     | |
| `
`
     | |-------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 (any non-objective-C function or method)
| `
`
     |
| `
`
     |-----------MinorAPIElement (parameter, members of structs)
| `
`
     |
| `
`
     |-----------PDefine
| `
`
     |
| `
`
     |-----------Struct (for both structs and unions)
| `
`
     | |
| `
`
     | |-------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.)
| `
`
| `
`
    ParseTree (Token tree instantiated from BlockParse.pm.)
| `
`

The `headerDoc2HTML` script also uses the non object-oriented modules `Utilities.pm`, `ClassArray.pm`, and `BlockParse.pm`. Most class instances are instantiated from `headerDoc2HTML.pl` based on the results of a call to `blockParse`.

The `ParseTree` class is instantiated in the block parser itself. It contains a token tree and a set of operations on that tree (print the tree, return a text or html representation of the tree, walk the parse tree for parameters, walk the parse tree for embedded headerdoc markup, etc.

Finally, `gatherHeaderDoc` uses an external program, `resolveLinks`, to convert special “link request” comments into links to other files in the directory being processed. This tool (written in C) resides in the `bin` directory within the HeaderDoc modules directory.

© 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)