[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