cxxDocumentor derived from none

Description: the main class that reads directory files, analyzes, and generates documentation

notes:
Category: cxxDocumentor
Author: Alex Hill
11/01/01
12/02/04 Alex Hill - added debuging and commenting
Revision: 06/02/06 Alex Hill - made index and revision file names mirror template

    Source

cxxDocumentor.cxx
cxxDocumentor.h

    Comments

constructor cxxDocumentor

1 set the default template files
2 evaluate CXXDOCUMENTOR_DEBUG environmental variable

destructor ~cxxDocumentor

1 delete all associated document objects

method createDocument

1 document instance creation

method setIndex

1 the template file to generate the index page

method setRevisions

1 the template file to generate the revisions page

method setTemplate

1 the template file to generate individual class pages

method analyze

1 if the directory is opened succesfully
1.1 while each entry is read
1.1.1 if the entry name ends in ".cxx" then
1.1.1.1 create a cxxDocument instance
1.1.1.2 set the class template file for that instance
1.1.1.3 analyze the C++ content of the source file
1.1.1.4 order the exisiting documents in alphabetical order
1.1.1.5 insert the new document into the document list
1.2 close the directory

method report

1 open the index template file
2 if file is not found then
2.1 open the file at /usr/local/cxxDocuemtor_0.2
3 if file is not found then error and return
4 open the index output file
5 while not at the end of the file
5.1 get a line from the stream
5.2 output the line to the output file
5.3 if the line contains "
5.3.1 extract the first meta tag parameter from the line
5.3.2 extract the second meta tag parameter from the line
5.3.3 if the name meta tag parameter equals "cxxDocumentor" then
5.3.3.1 for each document in the documents list
5.3.3.1.1 if the document tag "category" matches the meta tag content parameter then
5.3.3.1.1.1 generate a table line item for that class
5.3.3.1.1.2 have the document generate the associated class page
6 close the input stream
7 close the output stream
8 for each document
8.1 if the document tag "category" is "none" then generate the associate class page
9 for each document
9.1 get the document tag "revision"
9.2 convert the revision date into an internal format
9.3 for each document in the revisions list
9.3.1 if the document has a revision
9.3.1.1 get the current revision date
9.3.1.2 if the new document date is greater than the current document date then break
9.4 insert the document into the revisions list
10 open the revisions template file
11 if file is not found then
11.1 open the file at /usr/local/cxxDocuemtor_0.2
12 if file is not found then error and return
13 open the revisions output file
14 while not at the end of the file
14.1 get a line from the stream
14.2 output the line to the output file
14.3 if the line contains "
14.3.1 extract the first meta tag parameter from the line
14.3.2 extract the second meta tag parameter from the line
14.3.3 if the name meta tag parameter equals "cxxDocumentor" then
14.3.3.1 if the meta tag content parameter equals "revisions" then
14.3.3.1.1 for each document in the revisions list
14.3.3.1.1.1 generate a table line item for that class
15 close the input stream
16 close the output stream