../autodox2.p

/* Code Documenter - generates HTML documentation of programs.  
autodox2.p   2001 by Judy Hoffman Green, Joanju Limited

Parses and documents significant features of each program listed,
displays the results out to an edit window, and generates 
the html documentation for these programs.

This procedure must be run persistently.

In character mode, the editor "ed1" has a different background 
color when it is disabled from when it is enabled. This may cause
a flicker effect when running a small test set of programs as the 
editor is enabled and the background color changes, but no information is lost. 


Methods List
============

main
      No parameters.
      Run this once everything is set.
getNumErrors
      OUTPUT INTEGER
      Get the number of errors after calling "main".
setAppName  
      INPUT CHARACTER
      Sets the name of your application.
setOutputDir
      INPUT CHARACTER
      Sets the name of the output directory. Leave blank for current 
      working dir.
setFileList
      INPUT CHARACTER
      Sets the name of a file containing a list of program names
      (.w, .p, etc). One program name per line. Lines can
      be commented out by inserting lines containing nothing
      but open comment (/*) and closing comment (*/).
      The program names in this file must be either relative to your working
      directory or have fully-qualified paths.
setProcCommentLoc
      INPUT LOGICAL
      Sets whether to look Before or After the PROCEDURE statement for a 
      comment.
setFuncCommentLoc
      INPUT LOGICAL
      Sets whether to look Before or After the FUNCTION statement for a comment.
setParamCommentLoc
      INPUT LOGICAL
      Sets whether to look Before or After the DEFINE PARAMETER statement 
      for a comment.
*/

Parameters:

    None

Procedures Summary:


Functions Summary:


Procedures:

checkSumDir
    /* Check if we need to change directory name in the summary HTML. */
    
checkTocDir
    /* Check if we need to change directory name in the TOC HTML. */
    
errorLogger
    INPUT theText AS CHARACTER  
findNode
    /* Finds the first node of a particular type after a specified node.
     * Note that findNode is recursive, and the 
     * "child" handle must be defined inside this procedure.
     */
    
    INPUT findType AS CHARACTER   /* comma-delim type list */
    INPUT theNode AS INTEGER  
    OUTPUT foundNode AS LOGICAL  
    OUTPUT resultNode AS INTEGER  
getCommentAfter
    /* Procedure to find a hidden comment token after the given node, and 
     * return its' text. 
     */
    
    INPUT pNode AS INTEGER   /* node to look after */
    INPUT pSameLine AS LOGICAL   /* must be same line? */
    OUTPUT pComment AS CHARACTER   /* text of comment */
getCommentBefore
    /* Procedure to find a hidden comment token before the given node, 
     * and return its' text. 
     */
    
    INPUT pNode AS INTEGER   /* node to look bef */
    OUTPUT pComment AS CHARACTER   /* text of comment */
getFunctions
    /* Go through the program to pick up the functions. */
    
getNumErrors
    /* Reports the number of errors found. */
    
    OUTPUT p AS INTEGER  
getParams
    /* Find all of the parameters in the main procedure or internal procedure, 
     * build TT recs.
     * Pass in parameter pProcName, which is either blank or a procedure name.
     * Pass in parameter pSetProcAttr for whether we're setting this attribute 
     * or checking it. When setting the attribute, this marks the nodes as 
     * being inside a procedure. If we're checking the attribute, this is for 
     * when we are looking for only non-procedure nodes, so we discard all 
     * nodes that were previously marked.
     */
    
    INPUT pProcName AS CHARACTER  
    INPUT pSetProcAttr AS LOGICAL  
    INPUT pStartNode AS INTEGER  
getProcComment
    /* Figure out the program's description (in a comment) if we can find one. 
     * For further information, see the readme.html section "Finding the First 
     * Comment...".
     */
    
getProcedures
    /* Go through the internal procedures to pick up their names 
       * and parameters. 
       */
    
getRealNode
    /* Procedure to find the first real node after a given node. A real node
     * is one which has non-blank nodeText. 
     * Note that getRealNode is recursive,
     * and the "child" handle must be defined inside this procedure.
     */
    
    INPUT theNode AS INTEGER  
    OUTPUT foundNode AS LOGICAL  
    OUTPUT realNode AS INTEGER  
getStmtText
    /* Hand in the node that you want the retrieved text to start at. 
     * This procedure ends at the first COLON (LEXCOLON) or PERIOD it gets to. 
     * Note that getStmtText is recursive,
     * and the "child" handle must be defined inside this procedure.
     */
    
    INPUT theNode AS INTEGER   /* start Node */
    INPUT-OUTPUT theText AS CHARACTER  
    OUTPUT done AS LOGICAL  
main
    /* Prepare the output HTML files: */
    
prepareDetHtml
    /* Prepare the header and footer HTML for the multiple detail files. */
    
replaceChars
    /* Replace characters significant to HTML. */
    
    INPUT-OUTPUT pText AS CHARACTER   /* text to fix */
setAppName
    /* Sets the application name. */
    
    INPUT name AS CHARACTER  
setFileList
    /* Sets filename containing list of programs to document. */
    
    INPUT p AS CHARACTER  
setFuncCommentLoc
    /* Sets where to look for FUNCTION comments. */
    
    INPUT loc AS LOGICAL  
setOutputDir
    /* Sets the output directory. */
    
    INPUT dir AS CHARACTER  
setParamCommentLoc
    /* Sets where to look for DEFINE PARAMETER comments. */
    
    INPUT loc AS LOGICAL  
setProcCommentLoc
    /* Sets where to look for PROCEDURE comments. */
    
    INPUT loc AS LOGICAL  
writeDetFile
    /* Write out the HTML to build the individual detail HTML file. */
    
writeIndexFile
    /* Write out the HTML to build the index html file. */
    
writeSumFileFooter
    /* Write footer for summary HTML page. (right side of frame) */
    
writeSumFileHeader
    /* Write header for summary HTML page. (right side of frame) */
    
writeSumFileLine
    /* Write a line for the summary HTML. (right side of frame) */
    
writeTocFileFooter
    /* Write footer for table of contents HTML. (left side of frame) */
    
writeTocFileHeader
    /* Write header for table of contents HTML. (left side of frame) */
    
writeTocFileLine
    /* Write a line for table of contents HTML. (left side of frame) */
    

Functions:

parserAttrGet
    FUNCTION parserAttrGet RETURNS CHARACTER ( theHandle AS INTEGER , theKey AS CHARACTER ) IN parserHandle .
parserAttrGetI
    FUNCTION parserAttrGetI RETURNS INTEGER ( theHandle AS INTEGER , theKey AS INTEGER ) IN parserHandle .
parserAttrSet
    FUNCTION parserAttrSet RETURNS LOGICAL ( theHandle AS INTEGER , theKey AS INTEGER , theValue AS INTEGER ) IN parserHandle .
parserConfigGet
    FUNCTION parserConfigGet RETURNS CHARACTER ( theFlag AS CHARACTER ) IN parserHandle .
parserConfigSet
    FUNCTION parserConfigSet RETURNS LOGICAL ( theFlag AS CHARACTER , theValue AS CHARACTER ) IN parserHandle .
parserCopyHandle
    FUNCTION parserCopyHandle RETURNS LOGICAL ( fromHandle AS INTEGER , toHandle AS INTEGER ) IN parserHandle .
parserErrorClear
    FUNCTION parserErrorClear RETURNS LOGICAL IN parserHandle .
parserErrorGetIsCurrent
    FUNCTION parserErrorGetIsCurrent RETURNS LOGICAL IN parserHandle .
parserErrorGetStatus
    FUNCTION parserErrorGetStatus RETURNS INTEGER IN parserHandle .
parserErrorGetText
    FUNCTION parserErrorGetText RETURNS CHARACTER IN parserHandle .
parserGetBoolAttr
    FUNCTION parserGetBoolAttr RETURNS LOGICAL ( theHandle AS INTEGER , attributeName AS CHARACTER ) IN parserHandle .
parserGetFirstChild
    FUNCTION parserGetFirstChild RETURNS LOGICAL ( ofHandle AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserGetHandle
    FUNCTION parserGetHandle RETURNS INTEGER IN parserHandle .
parserGetNextSibling
    FUNCTION parserGetNextSibling RETURNS LOGICAL ( ofHandle AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserGetNodeFilename
    FUNCTION parserGetNodeFilename RETURNS CHARACTER ( ofHandle AS INTEGER ) IN parserHandle .
parserGetNodeLine
    FUNCTION parserGetNodeLine RETURNS INTEGER ( ofHandle AS INTEGER ) IN parserHandle .
parserGetNodeText
    FUNCTION parserGetNodeText RETURNS CHARACTER ( ofHandle AS INTEGER ) IN parserHandle .
parserGetNodeType
    FUNCTION parserGetNodeType RETURNS CHARACTER ( ofHandle AS INTEGER ) IN parserHandle .
parserGetTopNode
    FUNCTION parserGetTopNode RETURNS LOGICAL ( intoHandle AS INTEGER ) IN parserHandle .
parserGetVersion
    FUNCTION parserGetVersion RETURNS CHARACTER IN parserHandle .
parserHiddenGetAfter
    FUNCTION parserHiddenGetAfter RETURNS LOGICAL ( handle AS INTEGER ) IN parserHandle .
parserHiddenGetBefore
    FUNCTION parserHiddenGetBefore RETURNS LOGICAL ( handle AS INTEGER ) IN parserHandle .
parserHiddenGetNext
    FUNCTION parserHiddenGetNext RETURNS LOGICAL IN parserHandle .
parserHiddenGetPrevious
    FUNCTION parserHiddenGetPrevious RETURNS LOGICAL IN parserHandle .
parserHiddenGetText
    FUNCTION parserHiddenGetText RETURNS CHARACTER IN parserHandle .
parserHiddenGetType
    FUNCTION parserHiddenGetType RETURNS CHARACTER IN parserHandle .
parserInit
    FUNCTION parserInit RETURNS LOGICAL IN parserHandle .
parserNodeFirstChild
    FUNCTION parserNodeFirstChild RETURNS CHARACTER ( ofHandle AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserNodeNextSibling
    FUNCTION parserNodeNextSibling RETURNS CHARACTER ( ofHandle AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserNodeParent
    FUNCTION parserNodeParent RETURNS CHARACTER ( ofHandle AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserNodePrevSibling
    FUNCTION parserNodePrevSibling RETURNS CHARACTER ( ofHandle AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserNodeStateHead
    FUNCTION parserNodeStateHead RETURNS CHARACTER ( ofHandle AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserNodeTop
    FUNCTION parserNodeTop RETURNS CHARACTER ( intoHandle AS INTEGER ) IN parserHandle .
parserParse
    FUNCTION parserParse RETURNS LOGICAL ( filename AS CHARACTER ) IN parserHandle .
parserQueryClear
    FUNCTION parserQueryClear RETURNS LOGICAL ( queryName AS CHARACTER ) IN parserHandle .
parserQueryCreate
    FUNCTION parserQueryCreate RETURNS INTEGER ( fromNode AS INTEGER , queryName AS CHARACTER , nodeType AS CHARACTER ) IN parserHandle .
parserQueryGetResult
    FUNCTION parserQueryGetResult RETURNS LOGICAL ( queryName AS CHARACTER , resultNum AS INTEGER , intoHandle AS INTEGER ) IN parserHandle .
parserReleaseHandle
    FUNCTION parserReleaseHandle RETURNS LOGICAL ( theHandle AS INTEGER ) IN parserHandle .
parserSchemaAddDb
    FUNCTION parserSchemaAddDb RETURNS LOGICAL ( name AS CHARACTER ) IN parserHandle .
parserSchemaAddField
    FUNCTION parserSchemaAddField RETURNS LOGICAL ( name AS CHARACTER ) IN parserHandle .
parserSchemaAddFieldList
    FUNCTION parserSchemaAddFieldList RETURNS LOGICAL ( fieldlist AS CHARACTER ) IN parserHandle .
parserSchemaAddTable
    FUNCTION parserSchemaAddTable RETURNS LOGICAL ( name AS CHARACTER ) IN parserHandle .
parserSchemaAliasCreate
    FUNCTION parserSchemaAliasCreate RETURNS LOGICAL ( aliasname AS CHARACTER , dbasename AS CHARACTER ) IN parserHandle .
parserSchemaAliasDelete
    FUNCTION parserSchemaAliasDelete RETURNS LOGICAL ( aliasname AS CHARACTER ) IN parserHandle .
parserSchemaClear
    FUNCTION parserSchemaClear RETURNS LOGICAL ( ) IN parserHandle .
parserWriteNode
    FUNCTION parserWriteNode RETURNS LOGICAL ( theHandle AS INTEGER , filename AS CHARACTER ) IN parserHandle .
Top