git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5776 626c5289-ae23-0410-ae9c-e8d60b6d4f22
43 lines
1 KiB
OpenEdge ABL
43 lines
1 KiB
OpenEdge ABL
/* File : example.i */
|
|
%module Example
|
|
|
|
%{
|
|
#include "example.h"
|
|
%}
|
|
|
|
%insert(m3wrapintf) %{
|
|
EXCEPTION E(Error);
|
|
%}
|
|
%insert(m3wrapimpl) %{
|
|
IMPORT Ctypes AS C;
|
|
%}
|
|
|
|
%pragma(modula3) enumitem="enum=error;int;srcstyle=underscore;Error";
|
|
|
|
%typemap("m3rawintype") double & %{C.double%};
|
|
%typemap("m3wrapintype") double & %{LONGREAL%};
|
|
|
|
%typemap("m3wraprettype") error ""
|
|
%typemap("m3wrapretvar") error "rawerr: C.int;"
|
|
%typemap("m3wrapretraw") error "rawerr"
|
|
%typemap("m3wrapretcheck:throws") error "E"
|
|
%typemap("m3wrapretcheck") error
|
|
%{VAR err := VAL(rawerr, Error);
|
|
BEGIN
|
|
IF err # Error.ok THEN
|
|
RAISE E(err);
|
|
END;
|
|
END;%}
|
|
|
|
%typemap("m3rawintype") errorstate & %{C.int%};
|
|
%typemap("m3wrapintype",numinputs=0) errorstate & %{%};
|
|
%typemap("m3wrapargvar") errorstate & %{err:C.int:=ORD(Error.ok);%};
|
|
%typemap("m3wrapoutcheck:throws") errorstate & "E";
|
|
%typemap("m3wrapoutcheck") errorstate &
|
|
%{IF VAL(err,Error) # Error.ok THEN
|
|
RAISE E(VAL(err,Error));
|
|
END;%}
|
|
|
|
/* Let's just grab the original header file here */
|
|
|
|
%include "example.h"
|