/******************************************************/ /* 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;