[Info-vax] puzzled by DCL symbol substitution

Phillip Helbig---undress to reply helbig at astro.multiCLOTHESvax.de
Sat Jan 7 12:52:37 EST 2012


In article <je9d83$3pp$1 at online.de>, helbig at astro.multiCLOTHESvax.de
(Phillip Helbig---undress to reply) writes: 

> $  SAVE_VERIFY = 'F$VERIFY(0)'
> $  VERIFY_PROCEDURE = "''F$PARSE(F$ENVIRONMENT("PROCEDURE"),,,"NAME")'_VERIFY"
> $  VERIFY_PROCEDURE = "''&VERIFY_PROCEDURE'"
> $  IF (SAVE_VERIFY .OR. VERIFY_PROCEDURE) THEN SET VERIFY
> [code which should be displayed if any verification is set]
> $  VERIFY_PROCEDURE = 0*'F$VERIFY(VERIFY_PROCEDURE)' + VERIFY_PROCEDURE
> [code which should be displayed if only the special verification is set]
> $  EXIT $STATUS + 0*F$VERIFY(SAVE_VERIFY)

OK, thanks to Alan I now understand this.

There is really no need to avoid changing the value of VERIFY_PROCEDURE 
in the penultimate line since it is not used later on.

I've had simple VERIFY stuff in procedures for a long time, but have 
never really needed more.  When writing some new code, I found I needed 
more flexibility to make testing easier.  So, new procedures will have 
extended VERIFY functionality, as well as other standard stuff.  Here's 
my proposal for basic VERIFY functionality.  I would appreciate any 
suggestions, comments or criticism---in particular if something can be 
simplified without loss of functionality, or if something important 
should be added.

$  SAVE_VERIFY = 'F$VERIFY(0)'
$  PROC_NAME   = F$PARSE(F$ENVIRONMENT("PROCEDURE"),,,"NAME")
$  PROC_VERIFY = "''PROC_NAME'_VERIFY"
$  PROC_VERIFY = "''&PROC_VERIFY'" .OR. F$TRNLNM(PROC_VERIFY)
$  ALL_VERIFY  = "''ALL_VERIFY'" .OR. F$TRNLNM("ALL_VERIFY")
$  VERIFY      = SAVE_VERIFY .OR. PROC_VERIFY .OR. ALL_VERIFY
$  PROCEDURE   = "EXIT STATUS .OR. %X10000000 + 0*F$VERIFY(SAVE_VERIFY) !"
$  IF (VERIFY) THEN -
    WRITE SYS$OUTPUT "$  PROCEDURE START ''F$ENVIRONMENT("PROCEDURE")'"
$  PROC_VERIFY = 0*'F$VERIFY(PROC_VERIFY .OR. ALL_VERIFY)'
$  SHOW TIME !just an example
$  STATUS = $STATUS
$  IF VERIFY THEN SET VERIFY
$  PROCEDURE END   'F$ENVIRONMENT("PROCEDURE")'




More information about the Info-vax mailing list