mirror of https://github.com/swig/swig
108 lines
1.5 KiB
OpenEdge ABL
108 lines
1.5 KiB
OpenEdge ABL
%module redefined
|
|
|
|
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) agua;
|
|
|
|
/* no redundant warnings */
|
|
%warnfilter(SWIGWARN_PARSE_REDUNDANT);
|
|
|
|
#if 1
|
|
//
|
|
// All these repeated declarations are not redefinitions,
|
|
// and they are valid C++ code, therefore, we skip
|
|
// swig redefined warnings.
|
|
//
|
|
%define uja
|
|
aju;
|
|
%enddef
|
|
|
|
%define uja
|
|
aju;
|
|
%enddef
|
|
|
|
%constant int agua = 0;
|
|
%constant int agua = 0;
|
|
|
|
%inline %{
|
|
|
|
#define REDUNDANT 1
|
|
#define REDUNDANT 1
|
|
|
|
#define MACROREP(x) x
|
|
#define MACROREP(x) x
|
|
|
|
class Hello;
|
|
class Hello;
|
|
|
|
typedef int Int;
|
|
typedef int Int;
|
|
|
|
inline int hello(int);
|
|
int hello(int) { return 0; }
|
|
|
|
struct B;
|
|
|
|
struct A
|
|
{
|
|
typedef int Int;
|
|
friend int foo(A*, B*);
|
|
};
|
|
|
|
struct B
|
|
{
|
|
typedef int Int;
|
|
friend int foo(A*, B*);
|
|
};
|
|
|
|
inline int foo(A*, B*) { return 0; }
|
|
|
|
%}
|
|
|
|
|
|
#else
|
|
|
|
//
|
|
// the %extend and %rename directive ALWAYS emit redefined warnings,
|
|
// since they are not C/C++/CPP standard.
|
|
//
|
|
%extend Hello {
|
|
int hi(int) { return 0; }
|
|
}
|
|
|
|
%rename(chao) hi(int);
|
|
|
|
//
|
|
// All these repeated declarations are really redefinitions,
|
|
// therefore, swig must produce a redefined warning
|
|
//
|
|
|
|
%constant int agua = 0;
|
|
%constant int agua = 1;
|
|
|
|
|
|
%inline %{
|
|
|
|
#define REDEFINED 1
|
|
#define REDEFINED 2
|
|
|
|
#define MACROREP(x) x
|
|
#define MACROREP(x) x*2
|
|
|
|
typedef int Int;
|
|
typedef double Int;
|
|
|
|
int hi(int);
|
|
int chao(int);
|
|
int hello(int);
|
|
inline double hello(int) { return 0; }
|
|
|
|
struct Hello
|
|
{
|
|
typedef int Int;
|
|
typedef double Int;
|
|
friend short hello(int);
|
|
int hi(int) { return 0; }
|
|
};
|
|
|
|
%}
|
|
#endif
|