DEFINITION MODULE Traps; IMPORT EM; CONST ERRTOOLARGE = 64; (* stack size of process too large *) ERRTOOMANY = 65; (* too many nested traps + handlers *) ERRNORESULT = 66; (* no RETURN from function procedure *) ERRCARDOVFL = 67; (* CARDINAL overflow *) ERRFORLOOP = 68; (* value of FOR-loop control variable changed in loop *) TYPE TrapHandler = EM.TrapHandler; PROCEDURE InstallTrapHandler(t: TrapHandler): TrapHandler; (* Install a new trap handler, and return the previous one. Parameter of trap handler is the trap number. *) PROCEDURE Message(str: ARRAY OF CHAR); (* Write message "str" on standard error, preceeded by filename and linenumber if possible *) PROCEDURE Trap(n: INTEGER); (* cause trap number "n" to occur *) END Traps.