home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / clipper / doc303.zip / DOC.MAN < prev    next >
Text File  |  1993-06-04  |  45KB  |  1,248 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.                                        DOC
  18.  
  19.                      Source Code Documentor for Clipper 5.x
  20.  
  21.                                   Version 3.03
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.                                Copyright (C) 1991
  33.                           Clarity Computer Consultants
  34.                                  1831 - 13th St.
  35.                                 Moline, IL 61265
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.                                         1
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                  DOC IS NOT FREE
  69.  
  70.           DOC is not, and has never been, free. It is shareware.  Share-
  71.         ware is software you can try before purchasing. After trying it
  72.         for a reasonable time you must either register or delete it from
  73.         your hard disk.  Registration is US $70.  When you register you
  74.         will receive a registration # by E-Mail, phone or fax to turn off
  75.         the UNREGISTERED VERSION messages and a printed Users Manual by
  76.         mail.
  77.  
  78.           To register by credit card log onto CompuServe and GO SWREG.
  79.         DOC's Registration ID is 519.  When you register via CIS you will
  80.         received your registration # by CompuServe Mail within 24 hours.
  81.  
  82.           You can also register by mailing a check or money order payable
  83.         in US funds to
  84.  
  85.                           Clarity Computer Consultants
  86.                                   1831-13th St.
  87.                                 Moline, IL 61265
  88.                                        USA
  89.  
  90.           When registering by mail, if you send a money order or a certi-
  91.         fied check and a phone or fax number where we can reach you we
  92.         will phone or fax you your registration # the day we receive
  93.         payment.  Otherwise, we will phone, fax or mail you your regis-
  94.         tration # when payment is confirmed and send the printed manual
  95.         by mail.
  96.  
  97.           To contact the author with problems or questions send a message
  98.         via CompuServe to
  99.  
  100.                          David Barrett, CIS # 72037,105
  101.  
  102.         or by mail to Clarity Computer Consultants at the above address.
  103.  
  104.  
  105.         Europian users might contact:
  106.         ──────────────────────────────
  107.  
  108.         SOFTSOL                    Tel.:+49-40-7665764
  109.         Neue Str. 35a              Fax :+49-40-7665664
  110.         2100 Hamburg 90            BBS :+49-40-7665527/8
  111.         Germany                    CIS :100112,3401
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.                                         2
  129.  
  130.  
  131.  
  132.  
  133.                                     CHAPTER I
  134.                                     Overview
  135.  
  136.         DOC, the Source Code Documenter for Clipper 5.x code, will read
  137.         your Clipper source code files and rewrite them into another
  138.         directory, indenting the code to show program control structures,
  139.         inserting a file header listing all the functions and procedures
  140.         in the file and a function header preceding each function and
  141.         procedure listing all the other functions which call or are
  142.         called by this function, lists the parameters and provides space
  143.         for the programmer to insert comments for each parameter and to
  144.         state the function's purpose, output and assumptions.  These
  145.         programmer comments in the headers are supported by DOC in that
  146.         each time DOC documents your source code it saves any existing
  147.         comments and reinserts them in the new header.  DOC saves the
  148.         name of the parameter with the parameter comments so that even if
  149.         the parameter order has been changed DOC will keep the comment
  150.         with the correct parameter.
  151.  
  152.         DOC now allows you to configure the appearance of the function
  153.         headers.
  154.  
  155.         DOC can also send your source code files to the printer, or print
  156.         to disk.  The printed source code files have page headers insert-
  157.         ed at the top of each page and a Table of Contents, listing the
  158.         page on which each function and parameter starts.  DOC can op-
  159.         tionally also insert line numbers in printed source code files.
  160.         DOC will optionally also create an action diagram for each source
  161.         code file with lines marking the program control structures.  The
  162.         printed action diagrams also have page headers, Table of Contents
  163.         and, optionally, line numbers inserted.
  164.  
  165.         DOC can create a list of source code files to be documented
  166.         automatically from a make file or any ASCII text file in which
  167.         the names of the source code files appear.  Clipper library
  168.         functions and other functions can be listed in KEY files, identi-
  169.         fying them to DOC.  For each KEY file you can tell DOC whether or
  170.         not the functions in that library should be listed in the headers
  171.         and reports.  DOC can also change the capitalization in your
  172.         source code of the name of functions listed in the key files.
  173.         Capitalization choices are all lower case, all upper case, first
  174.         letter capitalized or case changed to match the capitalization in
  175.         the Key File.
  176.  
  177.         DOC optionally also creates a Function and Procedure Report
  178.         listing each function and procedure in the source code files in
  179.         either alphabetical or order read or both.  Each function and
  180.         procedure is listed with a list of functions called, the func-
  181.         tion's parameters and comments and the other programmers com-
  182.         ments.
  183.  
  184.         DOC can optionally create a Cross Reference Report listing every
  185.         word found in the source code.  The report lists the source code
  186.         file, function name and line number for each occurrence of the
  187.         word.  Optionally DOC will include or omit function names listed
  188.  
  189.  
  190.                                         3
  191.  
  192.  
  193.  
  194.  
  195.         in the key files.
  196.  
  197.         DOC can optionally create a database and index file report for
  198.         every database and index file explicitly named in a USE or INDEX
  199.         command (or in a * SNAPCODE comment) or passed explicitly to a
  200.         user-defined open database function, that it can find on disk,
  201.         listing for each DBF file its structure and the index files
  202.         associated with it and for the index file the index key expres-
  203.         sion.  DOC also creates an include file for each dbf file with
  204.         handy preprocessor defines of the field names for scatter and
  205.         gathering to an array and a structure array for creating the
  206.         database using dbcreate() when it does not exist.
  207.  
  208.         DOC creates a report, called STAT.DOC, which lists the number of
  209.         lines of code, the number of lines of DOC created headers, total
  210.         lines and number of functions in each source code file and totals
  211.         for all the source code files.
  212.  
  213.         DOC optionally creates a Index and a Table of Contents document
  214.         listing all the functions and procedures in the system with the
  215.         page number and name of the name of the source code file for
  216.         each.  The Index document lists the functions and procedures in
  217.         alphabetical order and the Table of Contents lists them in the
  218.         order read.
  219.  
  220.         DOC, in conjunction with a Norton guide compiler and linker such
  221.         as those that are supplied with Expert Help, can create a Norton
  222.         Guide database for all the functions and procedures in the system
  223.         using the parameter list for the syntax and the programmer's
  224.         comments for the text.  DOC creates NGC compile files, the NGL
  225.         link file and a batch file which, when run, automatically com-
  226.         piles and links the guide.  DOC supports creating multiple func-
  227.         tion lists within a Norton Guide Database and also See Also:
  228.         references.
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.                                         4
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                    CHAPTER II
  259.                      Running DOC and Command Line Parameters
  260.  
  261.         A. DOCPATH Environmental Variable
  262.           DOC creates a number of temporary databases while it is proc-
  263.         essing which it erases before terminating.  DOC looks for an
  264.         environmental variable named DocPath.  If found it creates its
  265.         temporary files in the drive and directory specified by this
  266.         variable.  If there is no DocPath in the environment it looks for
  267.         an environmental variable named TEMP and uses the drive and
  268.         directory specified by it.  If it finds neither it uses the
  269.         current DOS directory for its temporary files.
  270.           If you have a RAM drive that is big enough (2 or 3 MBytes
  271.         should be big enough if you are not documenting a HUGE applica-
  272.         tion) set DocPath to it.  Otherwise, it would be good to specify
  273.         a directory where you have no permanent files to avoid any possi-
  274.         bility of a name collision.
  275.  
  276.         B. RUNNING DOC
  277.           If the file DOC.EXE resides in a directory in your path you can
  278.         invoke DOC from any DOS prompt.  There are four command line
  279.         parameters which DOC understands.
  280.  
  281.                        DOC [-M] [-S<path>] [-C<name>] [-G]
  282.  
  283.         C. THE -M PARAMETER
  284.            When DOC is started it queries the hardware (using Force's
  285.         ISCOLOR function) to determine whether the computer has a color
  286.         monitor and sets the screen colors accordingly.  The -M command
  287.         line parameter forces DOC to use monochrome screen colors even if
  288.         it detects a color monitor.  Use this parameter on computers
  289.         which simulate a color screen using shades of gray if this makes
  290.         DOC's screens difficult to read.
  291.  
  292.         D. THE -S PARAMETER
  293.           This command sets the Make File and Source Code Path (the
  294.         directory containing the configuration file and the make file) to
  295.         <path>.  If DOC is being used interactively, (i.e. the -G command
  296.         line parameter is not being used) the Make File and Source Code
  297.         path can also be specified on the Enter System Variable screen.
  298.         See the Enter System Variable section of this manual for more
  299.         information about the Make File and Source Code Path.
  300.  
  301.  
  302.         E. THE -C PARAMETER
  303.           This command sets the Configuration File name to something
  304.         other than the default CONFIG.DOC.  If several programming
  305.         projects share a source code directory only one of them can use
  306.         the default name of CONFIG.DOC for its configuration file and the
  307.         others must specify a different name whenever DOC is started.  If
  308.         DOC is being used interactively, (i.e. the -G command line param-
  309.         eter is not being used) the Configuration File name can also be
  310.         specified on the Enter System Variable screen. See the Enter
  311.         System Variable section of this manual for more information about
  312.  
  313.  
  314.                                         5
  315.  
  316.  
  317.  
  318.  
  319.         the Configuration File name.
  320.  
  321.  
  322.         F. THE -G PARAMETER
  323.            This command causes DOC to skip the menus and start document-
  324.         ing.  This can only be done successfully when DOC has been run at
  325.         least once interactively and the menus and input screens have
  326.         been used to create a Configuration File for the particular
  327.         programming project to be documented including the list of source
  328.         code files.  Once the configuration is set and the user is satis-
  329.         fied with the way DOC is documenting that set of source code
  330.         files (i.e. no more changes need to be made to the configuration)
  331.         then DOC can be invoked with the -G parameter so that the menus
  332.         are skipped and DOC immediately begins documenting.
  333.  
  334.  
  335.         G. EXAMPLES OF USE OF COMMAND LINE PARAMETERS
  336.            The following line in a batch or make file:
  337.  
  338.                   DOC -sD:\CLIPPER5\SOURCE\MYAPP -cMYAPP.CFG -g
  339.  
  340.         would run DOC unattended assuming there was a DOC configuration
  341.         file named MYAPP.CFG in the directory D:\CLIPPER5\SOURCE\MYAPP.
  342.         The following lines in a batch file:
  343.  
  344.                  D:
  345.                  CD \CLIPPER5\SOURCE\MYAPP
  346.                  DOC -G
  347.  
  348.         would run DOC unattended assuming there was a DOC configuration
  349.         file named CONFIG.DOC in directory D:\CLIPPER5\SOURCE\MYAPP.
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.                                         6
  377.  
  378.  
  379.  
  380.  
  381.  
  382.                                    CHAPTER III
  383.                              Enter System Variables
  384.  
  385.  
  386.         A. MAKE FILE AND SOURCE CODE PATH
  387.           The Make File and Source Code Path is the directory in which
  388.         DOC looks for source code files which are listed without a path,
  389.         where it looks for the make file and in which it creates and from
  390.         which it reads the Configuration File.  If this variable is left
  391.         blank the current DOS directory is the Make File and Source Code
  392.         Path.
  393.  
  394.  
  395.         B. CONFIGURATION FILE NAME
  396.           If this variable is left blank DOC uses the default name of
  397.         CONFIG.DOC.  If there already is a file with this name or you
  398.         want more than one configuration of DOC with the same Make File
  399.         and Source Code Path you must specify another name.  DOC stores
  400.         all variables set through the menus in the Configuration File.
  401.  
  402.           When DOC is run interactively, after prompting the user for the
  403.         Make File and Source Code Path and the Configuration File name,
  404.         if a configuration file with the specified name in the specified
  405.         directory exists, it is read and all variables are set as they
  406.         were when that configuration was last saved.  If no configuration
  407.         file already exists the system variables are set to default
  408.         values.
  409.  
  410.  
  411.         C. MAKE FILE NAME
  412.           Type in the name of the make file, or an ASCII text file con-
  413.         taining the names of the source code files for the programming
  414.         project to be documented, if one exists.  The file must be in the
  415.         Source Code directory and if no extension is specified an exten-
  416.         sion of RMK is assumed.  If the file name has no extension put a
  417.         period at the end of the name.
  418.  
  419.  
  420.         D. NAME OF APPLICATION, AUTHOR and COPYRIGHT HOLDER
  421.           The data typed in these 3 fields will be used in the file
  422.         headers DOC creates for all output source code files and reports.
  423.  
  424.  
  425.         E. OUTPUT FILE PATH
  426.           Specify a directory where the output source code files, action
  427.         diagrams, reports and print to disk files will be created.  This
  428.         must be different than the Source Code Path or other directories
  429.         where input source code files reside or there will be name con-
  430.         flicts between the input and output files.
  431.  
  432.  
  433.         F. KEY FILE PATH
  434.           The drive and directory where DOC expects to find the key files
  435.         specified in the key file list.
  436.  
  437.  
  438.                                         7
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.         G. DATABASE PATH
  446.            When DOC finds USE and INDEX statements in the source code it
  447.         tries to open the referenced database and index files to document
  448.         their structure and index expressions.  If the database and index
  449.         file names do not include a path DOC will look for the files in
  450.         the directory named here or in the default DOS directory if this
  451.         parameter is left blank.
  452.  
  453.         G. NAME OF OPEN DATABASE FUNCTION
  454.           If the name of a function is entered here DOC will look for a
  455.         database name in quotes passed as a parameter to that function
  456.         whenever it finds that function in the source code. If the data-
  457.         base can be found its structure will be documented in the
  458.         DBF_NTX.DOC report and the DATADICT.DBF database.
  459.  
  460.         I. EXITING THE SYSTEM DATA INPUT SCREEN
  461.            Press the ESC key when finished inputting data.  The Main Menu
  462.         screen will appear.
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.                                         8
  501.  
  502.  
  503.  
  504.  
  505.  
  506.                                    CHAPTER IV
  507.                                   FILES SubMenu
  508.  
  509.         A. SYSTEM DATA <F1>
  510.            Pressing F1 brings up the System Data screen again.
  511.  
  512.  
  513.         B. KEY FILE LIST <F8>
  514.            Selecting this option places you in the Key File Names, Doc
  515.         Names and Capitalization screen.  Type in the names of your key
  516.         files including extension.  DOC will assume these files are in
  517.         the key file directory specified on the System Data screen.
  518.            If you leave the Doc Name column blank the functions listed in
  519.         that key file will be ignored by DOC.  If you type in a Doc Name
  520.         the functions in that key file will included in the file headers
  521.         and reports and will be listed as being "from" that Doc Name.
  522.            If you type a "L", "U", "F" or "K" in the Cap column then any
  523.         words in your source code which match a word in that Key File
  524.         will be capitalized (or uncapitalized) as specified :
  525.                 L - all lower case
  526.                 U - all upper case
  527.                 F - first letter capitalized, rest lower case
  528.                 K - capitalized the same as function name in the key
  529.         file.
  530.         *** WARNING *** If you are using the case sensitive feature of
  531.         the #define pre-processor directive be careful when using this
  532.         feature.
  533.            Press ENTER to be editing on the current line.  Press the down
  534.         arrow key to add a new line.  Press the ESC key when done.
  535.  
  536.  
  537.         C. FROM MAKE FILE <F2>
  538.            Selecting this option causes DOC to read the make file and
  539.         extract the names of all files with an extension of PRG or SCR
  540.         which it finds and creates the List of Files to be Documented.
  541.  
  542.  
  543.         D. EDIT FILE LIST <F3>
  544.            When you select this option you can edit the List of Files to
  545.         be Documented.  To add new source code file names use the down
  546.         arrow key to move to a blank line and type in the name.  Press
  547.         the DEL key to delete an existing name.  Be sure to specify a
  548.         path for any source code files which are not in the Source Code
  549.         Path drive and directory.  Press ESC key when done.
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.                                         9
  563.  
  564.  
  565.  
  566.  
  567.  
  568.                                     CHAPTER V
  569.                                  OUTPUT SubMenu
  570.  
  571.         A. SOURCE CODE <F4>
  572.             When this option is selected a screen pops up with the fol-
  573.         lowing options.  On questions with non-numeric answers toggle
  574.         through the options by pressing any keys other than the arrow
  575.         keys.  Use the up and down arrow keys to move the cursor.  Press
  576.         the ESC key when done.
  577.  
  578.          1.) Write SourceCode files to output path   YES/NO
  579.         If YES, each source code file in the File List is rewritten to
  580.         the Output Directory with headers inserted and indented.
  581.  
  582.          2.) Print Source Code files                 YES/NO
  583.         If YES, each source code file is sent to a printer port or a disk
  584.         file with headers inserted, indented, page breaks and headers and
  585.         a Table of Contents.
  586.  
  587.          3.) Send Printed Source Code to   LPT1/LPT2/LPT3/COM1/COM2/FILE
  588.         If FILE, the Source Code files are printed to a file with an
  589.         extension of *.PRN in the output directory.  Otherwise the print-
  590.         ed source code is sent to the printer port selected.
  591.  
  592.          4.) Line numbers in printed source code       YES/NO
  593.         If YES, line numbers are inserted at the beginning of each line
  594.         of the printed file.
  595.  
  596.          5.) Write action diagrams to output path       YES/NO
  597.         If YES, each source code file is rewritten to the Output Directo-
  598.         ry with an extension .ACT, headers, indenting and lines marking
  599.         the program control structures.
  600.  
  601.          6.) Print action diagrams                      YES/NO
  602.         If YES, each action diagrams is sent to a printer port or printed
  603.         to disk with page breaks, headers and a Table of Contents.
  604.  
  605.          7.) Send Printed Action diagrams to  LPT1/LPT2/.../COM2/FILE
  606.         If FILE, the action diagrams are printed to files in the output
  607.         directory with an extension of .APN.  Otherwise they are sent to
  608.         the selected printer port.
  609.  
  610.          8.) Line numbers in printed action diagrams     YES/NO
  611.         If YES, line numbers are inserted at the beginning of each line
  612.         in the printed action diagrams.
  613.  
  614.          9.) Use graphics in action diagrams             YES/NO
  615.         If YES, IBM upper ASCII box-drawing characters are used to mark
  616.         the control structures in action diagrams.  If your printer
  617.         cannot print these characters properly select NO.
  618.  
  619.          10.) Final page eject in printed output           YES/NO
  620.         If NO, the page eject on the final page of printed output is
  621.         omitted.  This avoids extra blank pages when using utilities such
  622.  
  623.  
  624.                                         10
  625.  
  626.  
  627.  
  628.  
  629.         as LJBOOK after printing to disk.
  630.  
  631.          11.) Indent continued lines 1 level              YES/NO
  632.         If NO, DOC indents continued lines (lines following a line ending
  633.         with a semicolon) the same amount as the line was indented origi-
  634.         nally or the normal control level indent  -- whichever is a
  635.         larger indent.  If YES, DOC indents continued lines one extra
  636.         level in, irregardless of the original indent.
  637.  
  638.          12.) Spaces to indent comment lines        [Numeric input]
  639.         Number of spaces to indent file and function headers created by
  640.         DOC.  If you want only FUNCTION and PROCEDURE declaration lines
  641.         to start in Column 0 in your source code enter a number other
  642.         than 0 here.
  643.  
  644.          13.) Indent #if, #else, #endif                     YES/NO
  645.         If YES, #if #else and #endif are treated the same as IF, ELSE and
  646.         ENDIF in terms of indenting and in the action diagrams.  If NO,
  647.         they are not treated as program control structures.
  648.  
  649.          14.) Number of char/line in printer output   [Numeric input]
  650.         Number of characters per line your printer can handle.  Lines
  651.         longer than this a counted as 2 lines in determining page breaks.
  652.  
  653.          15.) Number of lines/page in printer output   [Numeric input]
  654.         Used when printing source code files, action diagrams or in
  655.         reports to determine where page breaks occur.
  656.  
  657.          16.) Number of spaces to indent per level    [Numeric input]
  658.         Number of spaces to indent each control level.
  659.  
  660.          17.) Create file and function headers                 YES/NO
  661.         If YES, DOC inserts file headers at the begining of each source
  662.         code file and Action Diagram and function headers before each
  663.         function, as configured in the ENTER FUNCTION HEADERS MENU.  If
  664.         NO, DOC does not insert the function and file headers.  In either
  665.         case DOC removes any existing headers which match the READ param-
  666.         eters in the ENTER FUNCTION HEADERS MENU.
  667.  
  668.          18.) (O)verwrite, (A)bort, enter (N)ew name or
  669.              (R)ename existing file if already exists       O/A/N/R
  670.         Determines what DOC does when it is about to create a file in the
  671.         Output directory and it discovers a file with the same name
  672.         already there.  If O, it ignores the problem and overwrites the
  673.         existing file.  If A, it aborts processing.  If N, it prompts the
  674.         user for a new name for the file it is about to create.  If R, it
  675.         prompts the user for a new name for the existing file.
  676.  
  677.  
  678.         B. REPORTS <F5>
  679.           When this option is selected the user is presented with a
  680.         screen containing the following options:
  681.  
  682.          1.) Send printed reports to     LPT1/LPT2/LPT3/COM1/COM2/FILE
  683.         Determines where the reports are sent.
  684.  
  685.  
  686.                                         11
  687.  
  688.  
  689.  
  690.  
  691.  
  692.          2.) Create Data Dictionary and CH files            YES/NO
  693.         If YES, creates a Data Dictionary data base and a report for all
  694.         the databases and indexes it finds in the Source Code directory
  695.         which are referred to the source code.  It also creates a CH
  696.         include file with some handy preprocessor defines for each data-
  697.         base.
  698.  
  699.          3.) Create Index and TOC listing of functions      YES/NO
  700.         If YES, creates reports listing every function and procedure, the
  701.         source code file name in which it was found and the page number
  702.         in the source code where it starts.  (If neither source code
  703.         files or action diagrams are printed no page numbers are created
  704.         and all page numbers will be 0.)  The Index and Table of Contents
  705.         are identical except for the order in which the functions appear.
  706.  
  707.          4.) Create Function report in read order            YES/NO
  708.         This is a report which lists all the functions and procedures in
  709.         the application along with all the information from its header,
  710.         source code, line number and source code file name.
  711.  
  712.          5.) Create Function report in alpha order            YES/NO
  713.         Same as above except the functions and procedures are listed in
  714.         alphabetical order.
  715.  
  716.          6.) Create Cross Reference Report                   YES/NO
  717.         This is a report which lists all the words in the source code,
  718.         listing for each one the source code file, function and line
  719.         number of each occurrence.  Enabling this report significantly
  720.         increases DOC's processing time and the space needed on the disc
  721.         for the DOC's temporary files.
  722.  
  723.          7.) Cross Reference Key Functions                   YES/NO
  724.         If this is disabled DOC ignores function names listed in the key
  725.         files when creating the Cross Reference Report.
  726.  
  727.  
  728.         C. ENTER FUNCTION HEADERS
  729.  
  730.          1.) The Enter Function Headers Input Screen
  731.         The input screen looks like this:
  732.  
  733.                      Enter Function Header Options
  734.  
  735.           (Read) Purpose Heading           "   Purpose :"
  736.           (Write) Purpose Heading          "   Purpose :"
  737.           (Read) Out Heading               "   Out     :"
  738.           (Write) Out Heading              "   Out     :"
  739.           (Read) Comment 1 Heading         "   Assumes :"
  740.           (Write) Comment 1 Heading        "   Assumes :"
  741.           (Read) Comment 2 Heading         "   Author  :"
  742.           (Write) Comment 2 Heading        "   Author  :"
  743.           (Read) See Also Heading          "  See Also :"
  744.           (Write) See Also Heading         "  See Also :"
  745.           (Read) Ngo File Heading          "   NgoFile :"
  746.  
  747.  
  748.                                         12
  749.  
  750.  
  751.  
  752.  
  753.           (Write) Ngo File Heading         "   NgoFile :"
  754.           (Read) First Header line         "*!*********************"
  755.           (Write) First Header line        "*!*************************************"
  756.           (Read) Last Header line          "*!*********************"
  757.           (Write) Last Header line         "*!*************************************"
  758.           (Read) Header left edge          "*!   "
  759.           (Write) Header left edge         "*!   "
  760.           Blank lines between sections       "Y"
  761.  
  762.  
  763.          2.) The Read and Write Variables.
  764.            The (Read) variables are used when DOC is extracting program-
  765.         mer comments from the code it is reading.  The (Write) variables
  766.         determine how the headers look in the output code, action dia-
  767.         grams, function reports and Norton Guides.  Therefore, if you
  768.         have programmer comments in DOC created headers that you want to
  769.         retain you need to set the (Read) variables the way the matching
  770.         (Write) variables were set the last time DOC was run.
  771.  
  772.          3.) Examples
  773.           For example, if you wish your headers to look like this :
  774.         /* -------------------------
  775.         |     Function Main
  776.         |  Calls : MyFunc()
  777.         |        : MyFunc2()
  778.         | Overview : This is the main menu routine  Sets defaults.
  779.         |            Sets screen color defaults based on ISCOLOR()
  780.         |            unless given a B/W command line parameter.
  781.         | In       : Param1 - first command line parameter.
  782.         |          : Param2 - second command line parameter.
  783.         | Returns  : Nothing
  784.         | Comments : Expects MYDATA.DBF to be in the default directory.
  785.         -------------------------- */
  786.  
  787.           and the code contains these comments in a header created by a
  788.         previous version of DOC you would set the variables like this:
  789.  
  790.           (Read) Purpose Heading           "   Purpose :"
  791.           (Write) Purpose Heading          "  Overview :"
  792.           (Read) Out Heading               "   Out     :"
  793.           (Write) Out Heading              "   Returns :"
  794.           (Read) Comment 1 Heading         "   Assumes :"
  795.           (Write) Comment 1 Heading        "  Comments :"
  796.           (Read) Comment 2 Heading         "           :"
  797.           (Write) Comment 2 Heading        "           :"
  798.           (Read) See Also Heading          "           :"
  799.           (Write) See Also Heading         "           :"
  800.           (Read) Ngo File Heading          "           :"
  801.           (Write) Ngo File Heading         "           :"
  802.           (Read) First Header line         "*!************"
  803.           (Write) First Header line        "/* ---------------------------"
  804.           (Read) Last Header line          "*!************"
  805.           (Write) Last Header line         "---------------------------- */"
  806.           (Read) Header left edge          "*!   "
  807.           (Write) Header left edge         "|    "
  808.  
  809.  
  810.                                         13
  811.  
  812.  
  813.  
  814.  
  815.           Blank lines between sections       "N"
  816.  
  817.  
  818.         If the next time you run DOC you have changed your mind and you
  819.         want the headers to look like this:
  820.  
  821.         /* =======================
  822.         ||
  823.         ||     Function Main
  824.         ||
  825.         ||  Calls : MyFunc()
  826.         ||        : MyFunc2()
  827.         ||
  828.         || Overview : This is the main menu routine  Sets defaults.
  829.         ||            Sets screen color defaults based on ISCOLOR()
  830.         ||            unless given a B/W command line parameter.
  831.         ||
  832.         || In       : Param1 - first command line parameter.
  833.         ||          : Param2 - second command line parameter.
  834.         ||
  835.         || Returns  : Nothing
  836.         ||
  837.         || Comments : Expects MYDATA.DBF to be in the default directory.
  838.         ||
  839.         ============================ */
  840.  
  841.          you would set the variables like this:
  842.  
  843.           (Read) Purpose Heading           "  Overview :"
  844.           (Write) Purpose Heading          "  Overview :"
  845.           (Read) Out Heading               "   Returns :"
  846.           (Write) Out Heading              "   Returns :"
  847.           (Read) Comment 1 Heading         "  Comments :"
  848.           (Write) Comment 1 Heading        "  Comments :"
  849.           (Read) Comment 2 Heading         "           :"
  850.           (Write) Comment 2 Heading        "           :"
  851.           (Read) See Also Heading          "           :"
  852.           (Write) See Also Heading         "           :"
  853.           (Read) Ngo File Heading          "           :"
  854.           (Write) Ngo File Heading         "           :"
  855.           (Read) First Header line         "/* -----------"
  856.           (Write) First Header line        "/* ============================"
  857.           (Read) Last Header line          "--------------"
  858.           (Write) Last Header line         "============================ */"
  859.           (Read) Header left edge          "|   "
  860.           (Write) Header left edge         "||   "
  861.           Blank lines between sections       "Y"
  862.  
  863.  
  864.          4.) The First and Last Header line variables.
  865.           You must make absolutely sure that no other lines in you code
  866.         match the First and Last Header line variables.  You also must be
  867.         aware that if you do not have the "(Read) Purpose Heading" varia-
  868.         ble set correctly, (it does not match the existing headers ) DOC
  869.         will not find you comments and that if you do not have the
  870.  
  871.  
  872.                                         14
  873.  
  874.  
  875.  
  876.  
  877.         "(Read) Last Header Line" variable set correctly DOC will treat
  878.         your entire source code like a comment and not document anything
  879.         [this does, however, speed up the processing <g>].
  880.  
  881.          5.) Leading and trailing spaces
  882.           DOC rtrims these variables so spaces on the left are signifi-
  883.         cant, but spaces on the right are ignored.
  884.  
  885.          6.) See Also and Ngo File Headings
  886.             Any programmer's comments placed in See Also and NGO file
  887.         sections of the function headers have special meanings to DOC
  888.         when it creates the Norton Guide database. If a Norton Guide
  889.         database is not to be created then these sections can be retitled
  890.         and used for something else, such as "History :" or "Changes :".
  891.            See the chapter on Norton Guide Database creation for more
  892.         information on how DOC uses the programmer's comments typed into
  893.         these sections of the function headers.
  894.  
  895.  
  896.  
  897.         D. NORTON GUIDE CREATION INPUT SCREEN
  898.  
  899.          1.) The input screen looks like this:
  900.  
  901.            Long Name     "My Personal Library                "
  902.            Norton Guide Short Name                  "mylib   "
  903.            Default NGO File                         "MISC    "
  904.            Norton Guide Compile File Extension           "NGC"
  905.            Norton Guide Object File Extension            "NGO"
  906.            Norton Guide Link File Extension              "NGL"
  907.            Command to invoke Norton Guide compiler
  908.             " NGC                                            "
  909.            Command to invoke Norton Guide linker
  910.             " NGML                                           "
  911.  
  912.          2.)  Norton Guide Long Name
  913.           Whatever is entered here is written as the !name parameter in
  914.         the link file.  This is the name of the Norton Guide Database
  915.         created from this application. It defaults to the name of the
  916.         application as entered in the System Data menu.
  917.  
  918.          3.) Norton Guide Short Name
  919.           This must be a valid DOS base file name of up to 8 characters.
  920.         This will be the base file name of the link file and the *.NG
  921.         file.  It defaults to the base name of the make file entered in
  922.         the System Data menu.
  923.  
  924.          4.) Default NGO file
  925.           The object file for any functions for which no NGO file was
  926.         specified either in the header or by means of a NGOFile comment.
  927.         If left blank, functions without a NGO file specified either
  928.         through a NGOFILE comment or an entry in the NgoFile: section of
  929.         the function header will not be included in the Norton Guide.
  930.  
  931.          5.) Norton Guide Compile File Extension
  932.  
  933.  
  934.                                         15
  935.  
  936.  
  937.  
  938.  
  939.           If you are using Expert Help you may wish to change this to
  940.         "EHC".
  941.  
  942.          6.) Norton Guide Object File Extension
  943.           If you are using a version of the Expert Help linker which ex-
  944.         pects object files to have an extension of "EHO" you must enter
  945.         that here.
  946.  
  947.          7.) Norton Guide Link File Extension
  948.           If you are using Expert Help you may wish to change this to
  949.         "EHL".
  950.  
  951.          8.) Commands to invoke compiler and linker
  952.            If your Norton Guide Compiler and Linker are not in a directo-
  953.         ry in the DOS path you must enter their full path names here.
  954.         These will be used in the batch file, named MAKENG.BAT, that DOC
  955.         creates to automatically compile and link the Norton Guide data-
  956.         base.
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.                                         16
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.                                    CHAPTER VI
  1004.                          NORTON GUIDE DATABASE CREATION
  1005.  
  1006.         A.  DESIGNING THE NORTON GUIDE DATABASE
  1007.           The Ngo File parameter in the headers allows the programmer to
  1008.         set up multiple function lists and menus in the Norton Guide
  1009.         database created by DOC. The way it works is if the user wants
  1010.         the Norton Guide create by DOC to list the functions in multiple
  1011.         lists selected from a menu rather than the default of all the
  1012.         functions in one big list then the user needs to do some plan-
  1013.         ning.
  1014.  
  1015.          1. Divide up all the functions in the application into a number
  1016.         of groups.
  1017.  
  1018.          2. For each group select a menu name and a Ngo File name. The
  1019.         Ngo File name must be a valid DOS base file name of up to 8
  1020.         characters.
  1021.  
  1022.          3. Label each function with the Ngo File name of the group to
  1023.         which it belongs. This can be done either by typing it into the
  1024.         function header created by DOC following the Ngo File : prompt or
  1025.         by using a NgoFile comment line.  You can place NgoFile comments
  1026.         anywhere in your source code except inside function or file
  1027.         headers.  These comment lines must start with *, // or && (not
  1028.         /* ... */ style comments).  The first word must be NGOFILE fol-
  1029.         lowed by a valid, up to 8 character, DOS base file name.  All the
  1030.         functions following that line (until the next NgoFile comment or
  1031.         the end of the source code file) that do not have a group (Ngo
  1032.         File name) specified in the function header will be assigned to
  1033.         that function group.
  1034.  
  1035.          4. When DOC is next run it will create a separate .NGC (or .EHC)
  1036.         file for each Ngo File name and will create the lines in the
  1037.         MAKENG.BAT file to compile them.
  1038.  
  1039.  
  1040.         B. NORTON GUIDE DATABASE LINK FILE CREATION
  1041.            DOC also creates a Norton Guide Database Link file with a
  1042.         default menu structure. This link file can be used as is, or the
  1043.         programmer can edit it with a text editor to change the menu
  1044.         wording or organization if desired before running the MAKENG
  1045.         batch file to compile and link the Norton Guide database.
  1046.  
  1047.           For example: if you have put references to the following Ngo-
  1048.         Files in your source code : ARRAY, BROWSE, COLOR, DATABASE,
  1049.         DISPLAY, DRIVPATH, MENU, PRINTER, STRING and you specified MISC
  1050.         as the default NgoFile, you have accepted NGO as the object file
  1051.         extension, and "My Personal Library" as the Long Name, then DOC
  1052.         will create the following link file:
  1053.  
  1054.              !name: My Personal Library
  1055.              !menu: Functions1
  1056.  
  1057.  
  1058.                                         17
  1059.  
  1060.  
  1061.  
  1062.  
  1063.                    ARRAY   ARRAY.NGO
  1064.                    BROWSE   BROWSE.NGO
  1065.                    COLOR    COLOR.NGO
  1066.                    DATABASE   DATABASE.NGO
  1067.                    DISPLAY   DISPLAY.NGO
  1068.              !menu: Functions2
  1069.                    DRIVPATH   DRIVPATH.NGO
  1070.                    MENU   MENU.NGO
  1071.                    MISC   MISC.NGO
  1072.                    PRINTER   PRINTER.NGO
  1073.                    STRING   STRING.NGO
  1074.  
  1075.         You must not change the object file names but you can rearrange
  1076.         the lines, change the !menu: names and the menu names for the
  1077.         object files.  For example you could make the following changes
  1078.         before running MAKENG.BAT.
  1079.  
  1080.              !name: My Personal Library
  1081.              !menu: User Interface
  1082.                    BROWSE      BROWSE.NGO
  1083.                    SCREEN COLOR  COLOR.NGO
  1084.                    DISPLAY     DISPLAY.NGO
  1085.                    MENU        MENU.NGO
  1086.              !menu: Array & DBF
  1087.                    ARRAY       ARRAY.NGO
  1088.                    DATABASE    DATABASE.NGO
  1089.              !menu: DOS, Print & Misc
  1090.                    DRIVE/PATH  DRIVPATH.NGO
  1091.                    MISC        MISC.NGO
  1092.                    PRINTER     PRINTER.NGO
  1093.                    STRING      STRING.NGO
  1094.  
  1095.  
  1096.         C. SEE ALSO REFERENCES
  1097.           When creating the Norton Guide Database entry for a function,
  1098.         if DOC finds one or more function names in the See Also section
  1099.         of the function header it creates a "See Also" or "Related Top-
  1100.         ics" reference from that entry to the specified other entries in
  1101.         the database.
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                         18
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.                                    CHAPTER VII
  1127.                            WRITE, GO and EXIT SubMenus
  1128.  
  1129.         A. WRITE SUBMENU
  1130.          1.) Read Configuration <F6>
  1131.         When you select this option DOC tries to read in a previously
  1132.         created Configuration File from the currently specified Source
  1133.         Code Directory.  If another name was not specified on the System
  1134.         Data Input Screen it looks for a file called "CONFIG.DOC".  If it
  1135.         finds the file it reads it in, over-writing any existing entries.
  1136.         The configuration data includes all user input including the data
  1137.         in the System Data screen, Output Data screen, Source Code File
  1138.         List and Key File List.
  1139.  
  1140.          2.) Write Configuration <F7>
  1141.         When you select this option DOC saves all the Configuration Data
  1142.         to a file in the current Source Code directory with the name
  1143.         "CONFIG.DOC" or other name as specified by the Configuration File
  1144.         name in System Data screen.  If you do not do this before telling
  1145.         DOC to "GO" (since it exits to DOS when it finishes documenting)
  1146.         or exiting DOC the configuration you created will be lost and you
  1147.         will have to recreate it if you ever want to document this par-
  1148.         ticular set of source code files again.
  1149.  
  1150.  
  1151.         B. GO SUBMENU
  1152.           Start Documenting <F9>
  1153.         When the F9 key is pressed DOC starts documenting the source code
  1154.         files in the Files To Be Documented List using the current set-
  1155.         tings.  You can abort by pressing the ESC key.
  1156.  
  1157.  
  1158.         C. EXIT SUBMENU
  1159.          1.) Go Back <Alt G>
  1160.         Go back to the Main Menu Screen.  Don't exit.
  1161.  
  1162.          2.) Quit <F10>
  1163.         Exits to DOS without documenting the source code.
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.                                         19
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.                                   CHAPTER VIII
  1189.                               THE SNAPCODE COMMENT
  1190.  
  1191.           Often in Clipper 5.x code a function is called or a database or
  1192.         index is opened through a code block, macro or extended expres-
  1193.         sion rather than the explicit way that DOC understands.  In these
  1194.         cases DOC will not document the call, database or index.  To get
  1195.         around this problem DOC allows the programmer to use a special
  1196.         comment that DOC will treat like code so that it will document
  1197.         things the way the programmer likes.  As a convience to people
  1198.         who have ever used both SNAP and DOC, the author of SNAP, Walter
  1199.         Kennamer (who is an all round dynamite fellow), suggested that
  1200.         DOC use the same syntax that SNAP uses for this purpose.
  1201.  
  1202.           In DOC a SNAPCODE comment is one that starts with * or // or &&
  1203.         (not a /* ... */ comment) and is not within a file or function
  1204.         header and the first word is SNAPCODE.  Whatever follows SNAPCODE
  1205.         is treated by DOC as if it were a regular code line.
  1206.  
  1207.         EXAMPLES OF SNAPCODE USE
  1208.  
  1209.              cDBFName := PickFromList()
  1210.              USE ( cDBFName )
  1211.              * SNAPCODE USE People
  1212.              * SNAPCODE USE Places
  1213.              * SNAPCODE USE Things
  1214.  
  1215.  
  1216.              bCodeBlock := iif( lSomething, {|| myfunc1() }, ;
  1217.                                             {|| myfunc2() } )
  1218.              AnotherFunc( bCodeBlock )
  1219.              .....
  1220.              ... < inside AnotherFunc() >
  1221.              EVAL( bCodeBlock )
  1222.              // SNAPCODE myfunc1(), myfunc2()
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.                                         20
  1245.  
  1246.  
  1247. 
  1248.