As I mentioned above, the programcode DTD is not invoked directly, but instead via a document type declaration specific to the language of the program being documented, allowing for language-specific customisation of the generic DTD.
At present, the only languages supported by DTDs are DSSSL (a language for formatting SGML documents, which has been used for much of the processing work in this project) and Fortran. C and C++ will be added almost immediately, and other languages as guided by demand.