Иерархия классов HeaderDoc

 
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.)
 
ParserState (Parser state instance instantiated from BlockParse.pm and stored
            in certain tokens within a ParseTree instance.)
 
IncludeHash (a simple data structure for storing information about a
            #include directive.)

В дополнение к классам, показанным выше, headerdoc2html/headerDoc2HTML.pl сценарий также использует необъектно-ориентированные модули Utilities.pm, ClassArray.pm, и BlockParse.pm. От большинства экземпляров класса инстанцируют headerdoc2html/headerDoc2HTML.pl на основе результатов вызова к blockParse.

ParseTree класс инстанцируют в самом блочном синтаксическом анализаторе. Это содержит маркерное дерево, и ряд операций на том дереве (распечатайте дерево, возвратите текст или представление HTML дерева, обойдите дерево синтаксического анализа для параметров, обойдите дерево синтаксического анализа для встроенной разметки HeaderDoc, и т.д.).

ParserState класс также инстанцируют в блочном синтаксическом анализаторе. Это содержит только три метода (new, _initialize, и print), и прежде всего просто гигантский хеш с некоторыми предопределенными значениями.

IncludeHash класс является по существу просто простой структурой данных для обработки основной информации о #include директивах. Это имеет два метода (new и _initialize).

gatherHeaderDoc инструмент использует внешнюю программу, resolveLinks, преобразовать специальные комментарии «запроса на канал» в ссылки к другим файлам в обрабатываемом каталоге. Этот инструмент (записанный в C) находится в bin каталог в каталоге модулей HeaderDoc.

Использование HeaderDoc xmllint (от libxml) для преобразования HTML в XHTML при генерации вывода XML. HeaderDoc также использует hdxml2manxml и xml2man от комплекта MPGL для генерации страниц справочника.