Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
71
Task/Jump-anywhere/DCL/jump-anywhere.dcl
Normal file
71
Task/Jump-anywhere/DCL/jump-anywhere.dcl
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
$ return ! ignored since we haven't done a gosub yet
|
||||
$
|
||||
$ if p1 .eqs. "" then $ goto main
|
||||
$ inner:
|
||||
$ exit
|
||||
$
|
||||
$ main:
|
||||
$ goto label ! if label hasn't been read yet then DCL will read forward to find label
|
||||
$ label:
|
||||
$ write sys$output "after first occurrence of label"
|
||||
$
|
||||
$ on control_y then $ goto continue1 ! we will use this to get out of the loop that's coming up
|
||||
$
|
||||
$ label: ! duplicate labels *are* allowed, the most recently read is the one that will be the target
|
||||
$ write sys$output "after second occurrence of label"
|
||||
$ wait 0::2 ! since we are in a loop this will slow things down
|
||||
$ goto label ! hit ctrl-y to break out
|
||||
$
|
||||
$ continue1: ! the previous "on control_y" remains in force despite having been triggered
|
||||
$
|
||||
$ label = "jump"
|
||||
$ goto 'label ! target can be a variable; talk about handy
|
||||
$ jump:
|
||||
$ write sys$output "after first occurrence of jump"
|
||||
$
|
||||
$ first_time = "true"
|
||||
$ continue_label = "continue2"
|
||||
$ 'continue_label: ! even the label can be a variable (but only backwards); talk about handy
|
||||
$ if first_time then $ goto skip
|
||||
$ break = "true"
|
||||
$ return
|
||||
$
|
||||
$ skip:
|
||||
$ first_time = "false"
|
||||
$
|
||||
$ on control_y then $ gosub 'continue_label ! setup a new on control_y to get out the next loop coming up
|
||||
$
|
||||
$ break = "false"
|
||||
$ 'label:
|
||||
$ write sys$output "after second occurrence of jump"
|
||||
$ wait 0::2
|
||||
$ if .not. break then $ goto 'label
|
||||
$
|
||||
$ gosub sub1 ! no new scope or parameters
|
||||
$ label = "sub1"
|
||||
$ gosub 'label
|
||||
$
|
||||
$ call sub4 a1 b2 c3 ! new scope and parameters
|
||||
$
|
||||
$ @nl: ! new scope and parameters in another file but same process
|
||||
$
|
||||
$ procedure_filename = f$environment( "procedure " ) ! what is our own filename?
|
||||
$ @'procedure_filename inner
|
||||
$
|
||||
$ exit ! exiting outermost scope exits the command procedure altogether, i.e. back to shell
|
||||
$
|
||||
$ sub1:
|
||||
$ return
|
||||
$
|
||||
$ sub2:
|
||||
$ goto break ! structurally disorganized but allowed
|
||||
$
|
||||
$ sub3:
|
||||
$ return
|
||||
$
|
||||
$ break:
|
||||
$ return
|
||||
$
|
||||
$ sub4: subroutine
|
||||
$ exit
|
||||
$ endsubroutine
|
||||
Loading…
Add table
Add a link
Reference in a new issue