?DCL_CHECK, UTILITIES, Charlie Hammond's unsupported DCL checkerE Note: Information about DCL_CHECK 3.1 is at the end of this file.BThe following information is extracted from DCL_CHECK's help file.0There is much more information in the help file.EThe HELP utility can access the DCL_CHECK help file using the command3 $ HELP /LIBRARY=:[]DCL_CHECK&or through DCL_CHECK with this command+ $ @:[]dcl_check help DCL_CHECKJ The DCL_CHECK procedure detects a variety of DCL coding errors andJ displays diagnostic messages that allow you to correct theJ problems. See "Diagnostics" for a list of the types of errors thatJ DCL_CHECK can detect. See "Problems" for information on the limits of DCL_CHECK.J When you execute DCL_CHECK with "HELP" as the first parameter,J DCL_CHECK invokes the DCL Help utility. If you provide additional8 parameters, they are passed to the Help utility.J To exit the Help utility, press Return one or more times until the3 prompt "enter name of file:" is displayed.% Additional information available:8 DCL_CHECK DCL_DIET Diagnostics Examples= Format Installation Line_counts Modifications. Output Problems Version Topic? installation INSTALLATION3 To install DCL_CHECK you must put the files DCL_CHECK.COM and DCL_CHECK.HLBJ into the same directory. You then execute DCL_CHECK as an indirectD command procedure. See "Format" for additional information.J DCL_CHECK.COM is provided in "dieted" form. You may also wish toJ have the file DCL_CHECK.COM_SOURCE available; this is the fully+ commented version of the procedure. Topic? formatFORMATJ DCL_CHECK is a DCL command procedure. It is executed by the following DCL command:E $ @[:][]DCL_CHECK.COM [ []]D $ @[:][]DCL_CHECK.COM HELP [...]J and/or may be omitted; the current defaults will be used.J The file DCL_CHECK.HLB must be in the same directory asJ 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.J If you use DCL_CHECK frequently, you may wish to assign a symbolJ in your LOGIN.COM file to execute DCL_CHECK. For example, if theJ DCL_CHECK.COM and .HLB files are in you login default directory,6 you might put the following in your LOGIN.COM:2 $ DCL_CHECK :== "@SYS$LOGIN:DCL_CHECK"J Alternatively, if you put DCL_CHECK.COM and DCL_CHECK.HLB inJ SYS$SYSTEM, you might put the following in your SYS$SYLOGIN (which- is normally SYS$MANAGER:SYLOGIN.COM):3 $ DCL_CHECK :== "@SYS$SYSTEM:DCL_CHECK"# Additional information available: ParametersFORMAT Subtopic? Topic? modifications MODIFICATIONSJ You can modify or "customize" DCL_CHECK by editing the commandJ procedure, DCL_CHECK.COM. However, DCL_CHECK.COM is a "compressed"J version of the procedure. To save disk space and improveJ performance, all comments and unnecessary spacing have beenJ removed from DCL_CHECK.COM. This makes it difficult to read and! understand the procedure.J It should be much easier to edit the file DCL_CHECK.COM_SOURCE,J which contains commands and is formatted to facilitate humanJ reading. You can recreate a "compressed" version of the command( procedure by using DCL_DIET.COM.# Additional information available:  HelpMODIFICATIONS Subtopic?Topic? dcl_dietDCL_DIETJ DCL_DIET is a command procedure that accepts as input a DCLJ command procedure file. It compresses, or "diets", the file byJ removing comments and unnecessary spaces. The compressed version is created as output.C The smaller size of the compressed file has two advantages:5 o It takes up less space on disk or tape. o It executes faster< -- especially for larger command procedures.F DCL_DIET is not part of DCL_CHECK. It is provided separately.9--------------------------------------------------------- DCL_CHECK 3.1EThe following comments from DCL_CHECK.COM_SOURCE outline the changes.3$! D3.1 2003-AUG-21 Charlie Hammond=$! Fixed some false instances of UMP and PSQ/PSR errors.$!3$! C3.1 2003-AUG-20 Charlie Hammond>$! Avoid flagging possessives ("'s " in quoted string) asE$! PSQ-W possible error using single-quote (') in quoted string$!3$! B3.1 2003-AUG-20 Charlie HammondH$! Re-write code that finds the file-name logical-name on I/P verbsD$! so that it can handle quoted strings and symbol substitution$! within quoted strings.$!3$! A3.1 2003-JUN-05 Charlie Hammond-$! Improved checking for paired brackets)$! by not checking in quoted stringsAVersion 3.0 of DCL_CHECK includes several new diagnostics related7to file checkin (OPEN, READ, WRITE and CLOSE commands).6It also contains a collection of incremental fixes and)improvements, and the new IFC diagnostic.EThe following comments from DCL_CHECK.COM_SOURCE outline the changes.3$! V3.0 2003-JUN-03 Charlie Hammond($! Add checking for paired brackets$!3$! H3.0 2003-APR-03 Charlie Hammond($! Added the contraction "They've".1$! Added all contractions in all upper case.8$! Added possessives for common accounting periods.B$! "Day's", "Week's", "Month's", "Period's", "Quarter's",I$! "Half's" and "Year's" (also in all lower and all upper case).-$! Also names of weekdays and months$!3$! G3.0 2003-APR-01 Charlie Hammond+$! Fixed various spelling errors/typosC$! Fixed aproblme with ICO (Help from Norm Raphael @metso.com)$!3$! F3.0 30-Sep-2002 Charlie HammondD$! Don't do file checking on SYS$COMMAND, SYS$ERROR or SYS$PIPE1$! (In addition to SYS$INPUT and SYS$OUTPUT)C$! Fix a problem with double quotes in symbol used w/ READ/KEY$!3$! E3.0 16-Sep-2002 Charlie Hammond>$! Avoid false diagnostics ICO-S for ">" and "<" in PIPEsB$! Only check /END and /ERR labels on /END_OF_FILE and /ERROR$!3$! D3.0 04-Sep-2002 Charlie Hammond?$! added " .ea ", " ea. " and " .ea. " to list of invalied$! comparison operators.$!3$! C3.0 18-Mar-2002 Charlie Hammond?$! Fix problem getting file logical names when there is anJ$! /END or /ERR qualifier with spaces preceedign of following the "="$!3$! B3.0 13-Mar-2002 Charlie Hammond0$! Fix problem with /ERROR on RUN statement$!3$! A3.0 18-Feb-2002 Charlie Hammond$! Add file verb checkingH$! NLN-S An OPEN, READ, WRITE or CLOSE statement has no logical name9$! ONC-E A file that is opened has no close statement5$! INR-A file that is opened for read is not read<$! ANR-E A file that is opened for append is not written;$! ONW-E A file that is opened for write is not written=$! RNR-S A file that is not opened for read is being readK$! WNW-S A file that is not opened for write or append is being writtenJ$! UNU-S A file that is not opened for read and write is being updated8$! CNO-S A file that is closed has no open statement$!B$! NOTE: There is no V2.2 -- A3.0 added sufficient functionality,$! that the major version was bumped.$!3$! G2.2 20-Nov-2001 Charlie Hammond6$! Make an "&" in a PIPE statement a warning.,$! Re-word several ICF diagnostics.!$! Include this in help.$!3$! F2.2 02-Aug-2001 Charlie Hammond?$! Spelling corrections, mostly in comments, suggested)$! by Norm.Raphael@jamesbury.com$!3$! E2.2 28-Jun-2001 Charlie Hammond1$! Improve line number display in pass 2?$! Display 1000, 2000, etc. instead of 500, 1500, etc.<$! Also display line numbers in round 100's instead6$! of actual numbers that could be off a bit.$!3$! D2.2 08-Jun-2001 Charlie Hammond<$! Fix problem mistaking "CALL", "GOTO" and "GOSUB"9$! at the end of a symbol name as a DCL command.$!3$! C2.2 31-May-2001 Charlie Hammond8$! Fix problem with /END and /ERR on same line.$!3$! B2.2 22-Feb-2001 Charlie HammondG$! Fix problems with detecting various forms of $DECK and $EOD$!3$! A2.2 15-Aug-2000 Charlie Hammond@$! Fix problem when first blank delimited token on line-$! ends with ":" but is not a label.$!3$! V2.1 15-Aug-2000 Charlie Hammond$$! Updated freeware release$!3$! H2.1 07-Aug-2000 Charlie Hammond+$! Make ICF as warning for & and %($! Add information to ICF help.$!3$! G2.1 03-Aug-2000 Charlie HammondB$! Allow for a $ in a continued, "one-line" if statement.D$! Avoid incorrect INT err that could happen if a PSQ error=$! is found in a nested "one-line" if statement.$!3$! F2.1 02-May-2000 Charlie Hammond:$! Add ICF invalid character found (#, %, ^ or &)$!3$! E2.1 24-Mar-2000 Charlie HammondB$! Improved EFB detection ("=" found between IF and THEN)$!3$! D2.1 13-Dec-1999 Charlie Hammond4$! Improve detection of single quote errors+$! Allow /OUT= on output file (P2)$!3$! B2.1 04-Dec-1999 Charlie HammondK$! Add LDS error -- Label defined by symbol substitution (warning)@$! Fix single quote (') in definition of valid_lexicals4$! It should be and now is a comma (,).3$! A2.1 23-Oct-1999 Charlie Hammond.$! Correct calculation of code_lines.5$! We had been subtracting deck_lines twice.$!3$! V2.0 17-Sep-1999 Charlie Hammond $! For FREEWARE release$!3$! B2.0 31-Jul-1999 Charlie Hammond@$! Correct handling of continuation comment that starts0$! with only a "!" rather than "$!"3$! Correct handling of SRT and INT errors..$! (SUBROUTINE/IF not terminated))$! "Beef up" a few help entries.$!3$! A2.0 28 July 1999 Charlie Hammond,$! Improve handling for TNA/ENA/DNA<$! (THEN/ELSE/ENDIF statement not allowed here);$! Make ENDSUBROUTINE cancel goto and exit shadows/$! Handle SUBROUTINE and ENDSUBROUTINE9$! IF/ENDIF and SUBR/ENDS may be disjoint or7$! strictly nested -- they may not overlap$!$! A1.0 - R1.03$! through October 1996 Charlie Hammond"$! Many changes/additions$!3$! X-1 dd-mmm-1996 Charlie Hammond'$! Original procedure created.