Index

    DEFINITION extTrap;
    (*Customization of trap handler

    The trap handler is called if any of the following exceptions occur:

    	1 = destination array too short for assignment
    	2 = array index out of bounds
    	3 = nil pointer dereference
    	4 = nil procedure variable call
    	5 = source in assignment is not an extension of target
    	6 = type guard failure
    	7 = unmatched expression in case statement
    	8 = assertion failure
    *)

    	TYPE
    		Handler = PROCEDURE (exception: INTEGER; file: ARRAY OF CHAR; line: INTEGER);
    (*trap handler signature, where `exception' is the exception code, and `file' and `line' is the location in the source where the exception occurred*)

    	VAR
    		handle: Handler; (*current trap handler*)

    	PROCEDURE SetHandler(h: Handler);
    (*sets the trap handler to h, which must not be NIL.*)

    END extTrap.