special cases and other things in wxPython, and since I plan on making several more, I've decided to put the SWIG sources in wxPython's CVS instead of relying on maintaining patches. This effectivly becomes a fork of an obsolete version of SWIG, :-( but since SWIG 1.3 still doesn't have some things I rely on in 1.1, not to mention that my custom patches would all have to be redone, I felt that this is the easier road to take. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			147 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
| //
 | |
| // except.i
 | |
| // Dave Beazley
 | |
| // April 14, 1997
 | |
| //
 | |
| // This SWIG library file provides language independent exception handling
 | |
| 
 | |
| #ifdef AUTODOC
 | |
| %section "Exception Handling Library",info,after,pre,nosort,skip=1,chop_left=3,chop_right=0,chop_top=0,chop_bottom=0
 | |
| 
 | |
| %text %{
 | |
| %include exception.i
 | |
| 
 | |
| This library provides language independent support for raising scripting
 | |
| language exceptions in SWIG generated wrapper code.    Normally, this is
 | |
| used in conjunction with the %except directive.
 | |
| 
 | |
| To raise an exception, use the following function call :
 | |
| 
 | |
|        SWIG_exception(int exctype, char *msg);
 | |
| 
 | |
| 'exctype' is an exception type code and may be one of the following :
 | |
| 
 | |
|        SWIG_MemoryError
 | |
|        SWIG_IOError
 | |
|        SWIG_RuntimeError
 | |
|        SWIG_IndexError
 | |
|        SWIG_TypeError
 | |
|        SWIG_DivisionByZero
 | |
|        SWIG_OverflowError
 | |
|        SWIG_SyntaxError
 | |
|        SWIG_ValueError
 | |
|        SWIG_SystemError
 | |
|        SWIG_UnknownError
 | |
| 
 | |
| 'msg' is an error string that should be reported to the user.
 | |
| 
 | |
| The library is normally used in conjunction with the %except directive
 | |
| as follows :
 | |
| 
 | |
| %except {
 | |
|        try {
 | |
|           $function
 | |
|        } catch RangeError {
 | |
|           SWIG_exception(SWIG_IndexError,"Array index out of bounds");
 | |
|        } catch(...) {
 | |
|           SWIG_exception(SWIG_UnknownError,"Uncaught exception");
 | |
|        }
 | |
| }
 | |
| 
 | |
| It is important to note that the SWIG_exception() function is only available
 | |
| to the C code generated by SWIG.  It is not available in the scripting language
 | |
| interface itself.
 | |
| %}
 | |
| 
 | |
| #endif
 | |
| 
 | |
| %{
 | |
| #define  SWIG_MemoryError    1
 | |
| #define  SWIG_IOError        2
 | |
| #define  SWIG_RuntimeError   3
 | |
| #define  SWIG_IndexError     4
 | |
| #define  SWIG_TypeError      5
 | |
| #define  SWIG_DivisionByZero 6
 | |
| #define  SWIG_OverflowError  7
 | |
| #define  SWIG_SyntaxError    8
 | |
| #define  SWIG_ValueError     9
 | |
| #define  SWIG_SystemError   10
 | |
| #define  SWIG_UnknownError  99
 | |
| %}
 | |
| 
 | |
| #ifdef SWIGTCL8
 | |
| %{
 | |
| #define SWIG_exception(a,b)   Tcl_SetStringObj(tcl_result,b,-1); return TCL_ERROR
 | |
| %}
 | |
| #else
 | |
| #ifdef SWIGTCL
 | |
| %{
 | |
| #define SWIG_exception(a,b)   Tcl_SetResult(interp,b,TCL_VOLATILE); return TCL_ERROR
 | |
| %}
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #ifdef SWIGPERL5
 | |
| %{
 | |
| #define SWIG_exception(a,b)   croak(b)
 | |
| %}
 | |
| #endif
 | |
| 
 | |
| #ifdef SWIGPERL4
 | |
| %{
 | |
| #define SWIG_exception(a,b)   fatal(b)
 | |
| %}
 | |
| #endif
 | |
| 
 | |
| #ifdef SWIGPYTHON
 | |
| %{
 | |
| static void _SWIG_exception(int code, char *msg) {
 | |
|   switch(code) {
 | |
|   case SWIG_MemoryError:
 | |
|     PyErr_SetString(PyExc_MemoryError,msg);
 | |
|     break;
 | |
|   case SWIG_IOError:
 | |
|     PyErr_SetString(PyExc_IOError,msg);
 | |
|     break;
 | |
|   case SWIG_RuntimeError:
 | |
|     PyErr_SetString(PyExc_RuntimeError,msg);
 | |
|     break;
 | |
|   case SWIG_IndexError:
 | |
|     PyErr_SetString(PyExc_IndexError,msg);
 | |
|     break;
 | |
|   case SWIG_TypeError:
 | |
|     PyErr_SetString(PyExc_TypeError,msg);
 | |
|     break;
 | |
|   case SWIG_DivisionByZero:
 | |
|     PyErr_SetString(PyExc_ZeroDivisionError,msg);
 | |
|     break;
 | |
|   case SWIG_OverflowError:
 | |
|     PyErr_SetString(PyExc_OverflowError,msg);
 | |
|     break;
 | |
|   case SWIG_SyntaxError:
 | |
|     PyErr_SetString(PyExc_SyntaxError,msg);
 | |
|     break;
 | |
|   case SWIG_ValueError:
 | |
|     PyErr_SetString(PyExc_ValueError,msg);
 | |
|     break;
 | |
|   case SWIG_SystemError:
 | |
|     PyErr_SetString(PyExc_SystemError,msg);
 | |
|     break;
 | |
|   default:
 | |
|     PyErr_SetString(PyExc_RuntimeError,msg);
 | |
|     break;
 | |
|   }
 | |
| }
 | |
| 
 | |
| #define SWIG_exception(a,b) _SWIG_exception(a,b); return NULL
 | |
| %}
 | |
| #endif
 | |
| 
 | |
| #ifdef SWIGGUILE
 | |
| %echo %{
 | |
| exception.i : Guile not currently supported.
 | |
| %}
 | |
| #endif
 | |
| 
 | |
| 
 |