Traps.def 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. DEFINITION MODULE Traps;
  2. (*
  3. Module: Facility for handling traps
  4. Author: Ceriel J.H. Jacobs
  5. Version: $Id$
  6. *)
  7. IMPORT EM;
  8. CONST
  9. ERRTOOLARGE = 64; (* stack size of process too large *)
  10. ERRTOOMANY = 65; (* too many nested traps + handlers *)
  11. ERRNORESULT = 66; (* no RETURN from function procedure *)
  12. ERRCARDOVFL = 67; (* CARDINAL overflow *)
  13. ERRFORLOOP = 68; (* value of FOR-loop control variable changed
  14. in loop
  15. *)
  16. ERRCARDUVFL = 69; (* CARDINAL underflow *)
  17. ERRINTERNAL = 70; (* Internal error; should not happen *)
  18. ERRUNIXSIG = 71; (* received unix signal *)
  19. TYPE TrapHandler = EM.TrapHandler;
  20. PROCEDURE InstallTrapHandler(t: TrapHandler): TrapHandler;
  21. (* Install a new trap handler, and return the previous one.
  22. Parameter of trap handler is the trap number.
  23. When a trap occurs, the default trap handler is re-installed before
  24. calling the new handler.
  25. *)
  26. PROCEDURE Message(str: ARRAY OF CHAR);
  27. (* Write message "str" on standard error, preceeded by filename and
  28. linenumber if possible
  29. *)
  30. PROCEDURE Trap(n: INTEGER);
  31. (* cause trap number "n" to occur *)
  32. END Traps.