@x begin write_ln(term_out,'Buffer size exceeded!'); goto final_end; @y begin write_ln(term_out,'Buffer size exceeded!'); uexit(0); @z @x Indeed, some \PASCAL\ compilers do not implement non-local |goto| statements. @ The |jump_out| procedure just cuts across all active procedure levels and goes to |end_of_TEX|. This is the only nontrivial |@!goto| statement in the whole program. It is used when there is no recovery from a particular error. Some \PASCAL\ compilers do not implement non-local |goto| statements. @^system dependencies@> In such cases the body of |jump_out| should simply be `|close_files_and_terminate|;\thinspace' followed by a call on some system procedure that quietly terminates the program. @= procedure jump_out; begin goto end_of_TEX; end; @y @ The |jump_out| procedure just cuts across all active procedure levels. @^system dependencies@> @= procedure jump_out; begin close_files_and_terminate; update_terminal; ready_already:=0; uexit(0); end; @z