SysExceptions.mod 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. IMPLEMENTATION MODULE SysExceptions;
  2. (* Binds the C exception runtime in runtime/syslib/shim.c. *)
  3. FROM SYSTEM IMPORT ADDRESS;
  4. PROCEDURE m2_exc_raise_lang (code : CARDINAL);
  5. EXTERNAL;
  6. PROCEDURE m2_exc_raise_user (source : ADDRESS; number : CARDINAL;
  7. message : ARRAY OF CHAR);
  8. EXTERNAL;
  9. PROCEDURE m2_exc_retry;
  10. EXTERNAL;
  11. PROCEDURE m2_exc_leave;
  12. EXTERNAL;
  13. PROCEDURE m2_exc_active () : BOOLEAN;
  14. EXTERNAL;
  15. PROCEDURE m2_exc_language () : BOOLEAN;
  16. EXTERNAL;
  17. PROCEDURE m2_exc_is_source (source : ADDRESS) : BOOLEAN;
  18. EXTERNAL;
  19. PROCEDURE m2_exc_number () : CARDINAL;
  20. EXTERNAL;
  21. PROCEDURE m2_exc_copy_message (VAR text : ARRAY OF CHAR);
  22. EXTERNAL;
  23. PROCEDURE m2_exc_new_source () : ADDRESS;
  24. EXTERNAL;
  25. PROCEDURE RaiseLang (code : CARDINAL);
  26. BEGIN
  27. m2_exc_raise_lang(code)
  28. END RaiseLang;
  29. PROCEDURE RaiseUser (source : ADDRESS; number : CARDINAL;
  30. message : ARRAY OF CHAR);
  31. BEGIN
  32. m2_exc_raise_user(source, number, message)
  33. END RaiseUser;
  34. PROCEDURE Retry;
  35. BEGIN
  36. m2_exc_retry
  37. END Retry;
  38. PROCEDURE Leave;
  39. BEGIN
  40. m2_exc_leave
  41. END Leave;
  42. PROCEDURE Active () : BOOLEAN;
  43. BEGIN
  44. RETURN m2_exc_active()
  45. END Active;
  46. PROCEDURE IsLanguage () : BOOLEAN;
  47. BEGIN
  48. RETURN m2_exc_language()
  49. END IsLanguage;
  50. PROCEDURE IsSource (source : ADDRESS) : BOOLEAN;
  51. BEGIN
  52. RETURN m2_exc_is_source(source)
  53. END IsSource;
  54. PROCEDURE Number () : CARDINAL;
  55. BEGIN
  56. RETURN m2_exc_number()
  57. END Number;
  58. PROCEDURE CopyMessage (VAR text : ARRAY OF CHAR);
  59. BEGIN
  60. m2_exc_copy_message(text)
  61. END CopyMessage;
  62. PROCEDURE NewSource () : ADDRESS;
  63. BEGIN
  64. RETURN m2_exc_new_source()
  65. END NewSource;
  66. END SysExceptions.