34 lines
768 B
Plaintext
34 lines
768 B
Plaintext
/******************************************************/
|
||
/* This program is nonfunctional. Its purpose is to */
|
||
/* illustrate how PL/I executes the ON and REVERT */
|
||
/* statements. */
|
||
/******************************************************/
|
||
auto_revert:
|
||
procedure options(main);
|
||
declare
|
||
i fixed,
|
||
sysin file;
|
||
|
||
do i = 1 to 10000;
|
||
call p(i,exit);
|
||
exit:
|
||
end;
|
||
|
||
P:
|
||
procedure (index,lab);
|
||
declare
|
||
(t, index) fixed,
|
||
lab label;
|
||
|
||
on endfile(sysin)
|
||
goto lab;
|
||
|
||
put skip list(index,':');
|
||
get list(t);
|
||
if t = index then
|
||
goto lab;
|
||
end P; /* implicit REVERT supplied here */
|
||
|
||
end auto_revert;
|
||
|
||
|