mirror of https://github.com/swig/swig
70 lines
1.1 KiB
OpenEdge ABL
70 lines
1.1 KiB
OpenEdge ABL
/* File : example.i */
|
|
%module my_example
|
|
|
|
enum color { RED=10, BLUE, GREEN };
|
|
|
|
class Foo {
|
|
public:
|
|
Foo() { }
|
|
enum speed { IMPULSE, WARP, LUDICROUS };
|
|
void enum_test(speed s);
|
|
};
|
|
|
|
void enum_test(color c, Foo::speed s);
|
|
|
|
|
|
|
|
%include pointer.i
|
|
|
|
/* Next we'll use some typemaps */
|
|
|
|
%include typemaps.i
|
|
|
|
%typemap(out) int * {
|
|
WHATEVER MAKES YOU HAPPY AS RESULT
|
|
}
|
|
|
|
%typemap(in) int * {
|
|
WHATEVER MAKES YOU HAPPY AS PARAMETER
|
|
}
|
|
|
|
%pragma(xml) DEBUG="false";
|
|
|
|
extern int * my_gcd(const char * x, int * y[], int * r, int (*op)(int,int)) const;
|
|
extern double my_foo;
|
|
void my_void();
|
|
my_empty();
|
|
|
|
const double my_dutch = 1.0;
|
|
|
|
union my_union
|
|
{
|
|
int my_iii;
|
|
char my_ccc;
|
|
};
|
|
|
|
struct my_struct
|
|
{
|
|
public:
|
|
virtual ~my_struct();
|
|
int my_foo();
|
|
protected:
|
|
int my_bar;
|
|
double x, y;
|
|
virtual double area() = 0;
|
|
static int nshapes;
|
|
};
|
|
|
|
class my_class : public my_struct, public my_union
|
|
{
|
|
public:
|
|
my_class( char c );
|
|
private:
|
|
~my_class();
|
|
virtual const int * my_func( my_class , char * * x, int y[], const int & r) const;
|
|
double my_foo[128];
|
|
const my_int i;
|
|
};
|
|
|
|
typedef int my_int;
|