Upstream version 1.3.40
[profile/ivi/swig.git] / Lib / modula3 / modula3head.swg
1 /* -----------------------------------------------------------------------------
2  * See the LICENSE file for information on copyright, usage and redistribution
3  * of SWIG, and the README file for authors - http://www.swig.org/release.html.
4  *
5  * modula3head.swg
6  *
7  * Modula3 support code
8  * ----------------------------------------------------------------------------- */
9
10 %insert(runtime) %{
11
12 #include <stdlib.h>
13 #include <string.h>
14 #include <stdio.h>
15 %}
16
17 #if 0
18 %insert(runtime) %{
19 /* Support for throwing Modula3 exceptions */
20 typedef enum {
21   SWIG_JavaOutOfMemoryError = 1, 
22   SWIG_JavaIOException, 
23   SWIG_JavaRuntimeException, 
24   SWIG_JavaIndexOutOfBoundsException,
25   SWIG_JavaArithmeticException,
26   SWIG_JavaIllegalArgumentException,
27   SWIG_JavaNullPointerException,
28   SWIG_JavaUnknownError
29 } SWIG_JavaExceptionCodes;
30
31 typedef struct {
32   SWIG_JavaExceptionCodes code;
33   const char *java_exception;
34 } SWIG_JavaExceptions_t;
35
36 #if defined(SWIG_NOINCLUDE)
37 void SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg);
38 #else
39 %}
40 %insert(runtime) {
41 void SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
42   jclass excep;
43   static const SWIG_JavaExceptions_t java_exceptions[] = {
44     { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
45     { SWIG_JavaIOException, "java/io/IOException" },
46     { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
47     { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
48     { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
49     { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
50     { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
51     { SWIG_JavaUnknownError,  "java/lang/UnknownError" },
52     { (SWIG_JavaExceptionCodes)0,  "java/lang/UnknownError" } };
53   const SWIG_JavaExceptions_t *except_ptr = java_exceptions;
54
55   while (except_ptr->code != code && except_ptr->code)
56     except_ptr++;
57
58   JCALL0(ExceptionClear, jenv);
59   excep = JCALL1(FindClass, jenv, except_ptr->java_exception);
60   if (excep)
61     JCALL2(ThrowNew, jenv, excep, msg);
62 }
63 }
64 %insert(runtime) %{
65 #endif
66 %}
67 #endif