[Info-vax] /END=label
VAXman- at SendSpamHere.ORG
VAXman- at SendSpamHere.ORG
Fri Aug 31 15:15:13 EDT 2018
In article <mn.fc1f7e289c5c90ca.104627 at invalid.skynet.be>, Marc Van Dyck <marc.gr.vandyck at invalid.skynet.be> writes:
>Phillip Helbigundress to reply pretended :
>> In article <pm1abq$r09$1 at dont-email.me>, Dave Froble
>> <davef at tsoft-inc.com> writes:
>>
>>> What you're doing, as I understand it, is invoking a program from DCL,
>>> and then exiting the program.
>>
>> $ RUN PROGRAM
>> $ IF $STATUS .EQS. END THEN GOTO END_HANDLING
>>
>>> Personally, I find testing the result of
>>> the program exit, and taking appropriate action, rather elegant.
>>
>> My impression is that he is not calling the program from a DCL
>> procedure, but rather from the DCL command line, as a DCL verb. So
>> there is no fallback to a DCL GOTO after the program exits.
>
>Yes it is implemented as a DCL command. And yes, if embedded in a
>command procedure, I can test $STATUS and take action from that.
>I would just be able to do
>
>$ <my dcl command with parameters> /END=label
>..
>..
>..
>$label:
>
>Rather than
>
>$ <my dcl command with parameters>
>$ IF $STATUS .EQ. end THEN GOTO label
>..
>..
>..
>$label:
>
>Just like the DCL READ command does.
>
>Simple, eh ?
*IF* the label has already been encountered by DCL, then the label symbol
will maintain the RFA of the record. *IF* not, then DCL must read (scan)
the procedure to find the label, create a label symbol, associate it with
the RFA and then, transfer control to that record. I could tell you how
to find the label symbol and even how to change DCL's stream to effectively
branch to that record, but if that label symbol does not yet exist, you'd
have to open and scan the procedure yourself and synthesize a label symbol.
--
VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG
I speak to machines with the voice of humanity.
More information about the Info-vax
mailing list