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