program P(output); procedure R; label 88; procedure Fin(L2:integer); begin writeln(' Fail(', L2:1, ')'); goto 88 end; procedure S(L:integer; procedure Fail(L2:integer)); label 99; procedure FailHere(L2:integer); begin if L=L2 then begin writeln(' Fail(', L2:1, ')'); goto 99 end else Fail(L2) end {FailHere}; begin {S} write('enter S(', L:1, ') '); if L<5 {say} then S(L+1, FailHere) else Fail(2); 99: write('leave S(', L:1, ') ') end {S}; begin {R} S(1, Fin); 88: {skip} end {R}; begin R end. {\fB Variable Level Failure or Return. \fP}