IMPLEMENTATION MODULE SysExceptions; (* Binds the C exception runtime in runtime/syslib/shim.c. *) FROM SYSTEM IMPORT ADDRESS; PROCEDURE m2_exc_raise_lang (code : CARDINAL); EXTERNAL; PROCEDURE m2_exc_raise_user (source : ADDRESS; number : CARDINAL; message : ARRAY OF CHAR); EXTERNAL; PROCEDURE m2_exc_retry; EXTERNAL; PROCEDURE m2_exc_leave; EXTERNAL; PROCEDURE m2_exc_active () : BOOLEAN; EXTERNAL; PROCEDURE m2_exc_language () : BOOLEAN; EXTERNAL; PROCEDURE m2_exc_is_source (source : ADDRESS) : BOOLEAN; EXTERNAL; PROCEDURE m2_exc_number () : CARDINAL; EXTERNAL; PROCEDURE m2_exc_copy_message (VAR text : ARRAY OF CHAR); EXTERNAL; PROCEDURE m2_exc_new_source () : ADDRESS; EXTERNAL; PROCEDURE RaiseLang (code : CARDINAL); BEGIN m2_exc_raise_lang(code) END RaiseLang; PROCEDURE RaiseUser (source : ADDRESS; number : CARDINAL; message : ARRAY OF CHAR); BEGIN m2_exc_raise_user(source, number, message) END RaiseUser; PROCEDURE Retry; BEGIN m2_exc_retry END Retry; PROCEDURE Leave; BEGIN m2_exc_leave END Leave; PROCEDURE Active () : BOOLEAN; BEGIN RETURN m2_exc_active() END Active; PROCEDURE IsLanguage () : BOOLEAN; BEGIN RETURN m2_exc_language() END IsLanguage; PROCEDURE IsSource (source : ADDRESS) : BOOLEAN; BEGIN RETURN m2_exc_is_source(source) END IsSource; PROCEDURE Number () : CARDINAL; BEGIN RETURN m2_exc_number() END Number; PROCEDURE CopyMessage (VAR text : ARRAY OF CHAR); BEGIN m2_exc_copy_message(text) END CopyMessage; PROCEDURE NewSource () : ADDRESS; BEGIN RETURN m2_exc_new_source() END NewSource; END SysExceptions.