home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 3 / AACD03.BIN / AACD / Programming / sofa / archive / SmallEiffel.lha / SmallEiffel / sys / runtime / exceptions.h < prev    next >
C/C++ Source or Header  |  1999-06-05  |  2KB  |  61 lines

  1. /*
  2. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  3. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  4. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  5. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  6. -- this header is kept unaltered, and a notification of the changes is added.
  7. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  8. -- another product.
  9. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  10. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  11. --                       http://www.loria.fr/SmallEiffel
  12. --
  13. */
  14. /*
  15.   This file (exception.h) is automatically included when exception handling
  16.   is used somewhere in the live code.
  17. */
  18.  
  19. #define SE_EXCEPTIONS 1
  20.  
  21. /*
  22.   Constants from Eiffel class EXCEPTIONS :
  23. */
  24. #define Check_instruction       1
  25. #define Class_invariant       2
  26. #define Developer_exception       3
  27. #define Incorrect_inspect_value   4
  28. #define Loop_invariant           5
  29. #define Loop_variant           6
  30. #define No_more_memory        7
  31. #define Postcondition           8
  32. #define Precondition            9
  33. #define Routine_failure        10
  34. #define    Os_signal          11
  35. #define Void_attached_to_expanded 12
  36. #define Void_call_target       13
  37.  
  38. /* 
  39.    This will be the structure of rescue contexts.  A rescue context 
  40.    will be declared for every routine that has a rescue clause.
  41.  
  42.    The `next' pointer is the address of the next rescue context if there
  43.    is one higher up the call chain, or NULL if there is no other
  44.    context.
  45. */
  46. struct rescue_context {
  47.   JMP_BUF jb;
  48.   struct rescue_context *next;
  49. };
  50.  
  51. extern struct rescue_context *rescue_context_top;
  52. extern int internal_exception_number;
  53. extern int original_internal_exception_number;
  54. extern int signal_exception_number;
  55. extern char *additional_error_message;
  56.  
  57. void setup_signal_handler(void);
  58. void signal_exception_handler(int);
  59. void internal_exception_handler(int);
  60. void print_exception(void);
  61.