ROBODoc/Generator [ Modules ]

FUNCTION

This contains routines to generate the documentation from the headers collected from the source code. It contains functionality common for all document types (HTML, RTF etc). The specifics are handled in the modules for each of the several document types.

The behaviour of many of the functions in this module are modified by the global output_mode.

The general call sequence is as follows:

     RB_Generate_Documentation
     +> RB_Generate_SingleDoc
        +> RB_Generate_Part
           +> Generate_Header
                 +> Generate_Item_Line
                    +> Generate_Char

BUGS

NOTES

Might be a good idea to replace all the switch statements with function pointers. So instead of:

     switch (output_mode)
     {
         case HTML:
             RB_HTML_Generate_Doc_Start(dest_doc, src_name, name, toc);
             break;
         case LATEX:
             RB_LaTeX_Generate_Doc_Start(dest_doc, src_name, name, toc);
             break;
         case RTF:
             RB_RTF_Generate_Doc_Start(dest_doc, src_name, name, toc);
             break;
         case ASCII:
             RB_ASCII_Generate_Doc_Start(dest_doc, src_name, name, toc);
             break;
         case TROFF:
             RB_TROFF_Generate_Doc_Start(dest_doc, src_name, name, toc);
             break;
         default:
             break;
     }

we will have

     (*rb_generate_doc_start)(dest_doc, src_name, name, toc);

were the function pointers are initialized at program start based on the output mode.