Similar to javadoc, this is a documentation generator for C++ and IDL, capable of generating docs in a variety of formats. This tool is currently used to generate the KDE API reference.
The codebase is mostly orphaned now as I am working on a replacement, but lives on as the kalyptus project. They are using kdoc to auto-generate source code to interface Qt and KDE with other languages, particularly C, java and ObjectiveC.
KDOC is implemented in perl, which makes it relatively easy to add transformations to the abstract syntax tree created by parsing the source interface files. The parser itself is limited however, and I've somewhat lost the taste for largish apps in perl, but the fact that kalyptus proved that it could be done practically is a source of satisfaction to me.
Available as source archive, or RPM via rpmfind.
KDOC requires perl 5.6 and a unix-like operating system. Running on Windows system is possible to some extent but is not tested.
Follow the instructions in the README file in the package root.
See the javadoc reference for basic notes.
Doc comments are normal C-style comments that start with
"/**" and directly precede the declaration which
they document. They contain paragraphs of text and optional
doc metadata for the declaration, usually with the form @tag. Paragraphs must be separated by
atleast one blank line.
These are embedded within paragraph text.
@ref identifier@p identifierThese must occur at the start of a para and are para-separated themselves.
@short para@see ident [ident...]@image url@li para@param paramname para@returns para@[throws|exception|raises] exceptionlist@internal@deprecated@abstract@reimplemented@version versiontag@id idtag@since versiontag@author paraIf you experience a problem that is not in the known bugs list, please
report it on the KDE bug tracker.
General queries can be sent to kdoc at kde.org.
Note that fixing this application is a very low priority for me and I don't often find the time. Patches are appreciated; I'd be much obliged if they came in ready to apply and don't break other parts of the code.