29 lines
		
	
	
	
		
			795 B
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			795 B
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
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.
 |