DCL_CHECK, UTILITIES, Charlie Hammond's unsupported DCL checker Note: Information about DCL_CHECK 3.2 - V3.4 is at the end of this file. The following information is extracted from DCL_CHECK's help file. There is much more information in the help file. The HELP utility can access the DCL_CHECK help file using the command $ HELP /LIBRARY=:[]DCL_CHECK or through DCL_CHECK with this command $ @:[]dcl_check help DCL_CHECK The DCL_CHECK procedure detects a variety of DCL coding errors and displays diagnostic messages that allow you to correct the problems. See "Diagnostics" for a list of the types of errors that DCL_CHECK can detect. See "Problems" for information on the limits of DCL_CHECK. When you execute DCL_CHECK with "HELP" as the first parameter, DCL_CHECK invokes the DCL Help utility. If you provide additional parameters, they are passed to the Help utility. To exit the Help utility, press Return one or more times until the prompt "enter name of file:" is displayed. Additional information available: DCL_CHECK DCL_DIET Diagnostics Examples Format Installation Line_counts Modifications Output Problems Version Topic? installation INSTALLATION To install DCL_CHECK you must put the files DCL_CHECK.COM and DCL_CHECK.HLB into the same directory. You then execute DCL_CHECK as an indirect command procedure. See "Format" for additional information. DCL_CHECK.COM is provided in "dieted" form. You may also wish to have the file DCL_CHECK.COM_SOURCE available; this is the fully commented version of the procedure. Topic? format FORMAT DCL_CHECK is a DCL command procedure. It is executed by the following DCL command: $ @[:][]DCL_CHECK.COM [ []] $ @[:][]DCL_CHECK.COM HELP [...] and/or may be omitted; the current defaults will be used. The file DCL_CHECK.HLB must be in the same directory as DCL_CHECK.COM if you use the HELP function in DCL_CHECK. The files may be in any directory to which you have read access. If you use DCL_CHECK frequently, you may wish to assign a symbol in your LOGIN.COM file to execute DCL_CHECK. For example, if the DCL_CHECK.COM and .HLB files are in you login default directory, you might put the following in your LOGIN.COM: $ DCL_CHECK :== "@SYS$LOGIN:DCL_CHECK" Alternatively, if you put DCL_CHECK.COM and DCL_CHECK.HLB in SYS$SYSTEM, you might put the following in your SYS$SYLOGIN (which is normally SYS$MANAGER:SYLOGIN.COM): $ DCL_CHECK :== "@SYS$SYSTEM:DCL_CHECK" Additional information available: Parameters FORMAT Subtopic? Topic? modifications MODIFICATIONS You can modify or "customize" DCL_CHECK by editing the command procedure, DCL_CHECK.COM. However, DCL_CHECK.COM is a "compressed" version of the procedure. To save disk space and improve performance, all comments and unnecessary spacing have been removed from DCL_CHECK.COM. This makes it difficult to read and understand the procedure. It should be much easier to edit the file DCL_CHECK.COM_SOURCE, which contains commands and is formatted to facilitate human reading. You can recreate a "compressed" version of the command procedure by using DCL_DIET.COM. Additional information available: Help MODIFICATIONS Subtopic? Topic? dcl_diet DCL_DIET DCL_DIET is a command procedure that accepts as input a DCL command procedure file. It compresses, or "diets", the file by removing comments and unnecessary spaces. The compressed version is created as output. The smaller size of the compressed file has two advantages: o It takes up less space on disk or tape. o It executes faster -- especially for larger command procedures. DCL_DIET is not part of DCL_CHECK. It is provided separately. --------------------------------------------------------- DCL_CHECK V3.2 - V3.4 $! V3.4-C 2006-MAY-02 Charlie Hammond $! Add a fix to upshift /DOLLARS= if the value is not in quotes $! $! V3.4-B 2006-APR-13 Charlie Hammond $! Add check for "/DOLLARS=$" $! Fix some problems with decks $! $! V3.4 2006-APR-10 Charlie Hammond $! Change to "V" for freeware release $! $! G3.4 2006-APR-06 Charlie Hammond $! Flag equal signs (=) in ASSIGN and DEFINE statements $! $! F3.4 2005-MAY-13 Charlie Hammond $! Flag DCL_CHECK SKIP lines that are not referenced. $! $! F3.4 2005-MAR-17 Charlie Hammond $! Fix problem with OPEN/READ/WRITE/CLOSE followed by only $! a quoted string that includes blank spaces. $! $! E3.4 2005-MAR-02 Charlie Hammond $! Use CREATE rather than OPEN/APPEND to avoid a incompatible $! file attributes warning. $! $! D3.4 2005-MAR-01 Charlie Hammond $! ADD F$FID_TO_NAME, F$LICENSE, F$MULTIPATH and F$UNIQUE $! to valid_lexicals $! $! C3.4 2005-FEB-09 Charlie Hammond $! Implement DCL_CHECK SKIP functionality to skip specified $! diagnostic(s) for one line only. $! $! B3.4 2005-JAN-25 Charlie Hammond $! Improve line spacing on diagnostic list. $! Correct diagnostic count NOT to count -CMNT- lines $! $! A3.4 2005-JAN-20 Charlie hammond $! add $! DCL_CHECK SUPPRESS "tag" to suppress specified diagnostic $! $! V3.3 2004-Nov-22 Charlie Hammond $! Change version to V. $! $! B3.3 2004-Nov-15 Charlie Hammond $! Add $! DCL_CHECK COMMENT "tag" to add comments to diagnostic list. $! $! A3.3 2004-Nov-10 Charlie Hammond $! Improve CCN to avoid some unnecessary diagnostics. $! Improved check for perceives to eliminate some false PSQ diagnostics. $! $! V3.2 2004-Aug-23 Charlie Hammond $! No change from K3.2. V3.2 will be submitted to the FREEWARE CD. $! $! K3.2 2004-Aug-19 Charlie Hammond $! Implement Ed Millers SLAC-J3.2 version. $! This is another fine piece of work by Ed. Thanks! $! SLAC-J3.2 2004-AUG-12 Ed Miller (esm@slac.stanford.edu) $! Split UMP into two checks: UMP and USP (for parentheses $! outside and inside quoted strings). Similarly for $! bracket tests UMB and USB. $! $! J3.2 2004-APR-19 Charlie Hammond $! Fix problems with similar labels in different subroutines $! $! I3.2 2004-APR-07 Charlie Hammond $! -- Thanks to Paddy O'Brien for reporting these problems. $! Fix parsing of DECK w/ /DOLLARS $! Do check for UMB in quoted strings (previously did not) $! Avoid LNS for label on CALL $! Avoid ONW for file with READ/DELETE $! Don't create a shadow for EXIT = and GOTO = assignments. $! $! H3.2 2004-APR-05 Charlie Hammond $! [no version change] $! Fix one check for " "")""" $! $! H3.2 2004-APR-02 Charlie Hammond $! [no version change] $! Don't use PIPE command on pre V7.1 systems $! $! H3.2 2004-MAR-05 Charlie Hammond $! Add LNS-S error -- $! referenced label is not in this subroutine