mirror of https://github.com/swig/swig
62 lines
1.6 KiB
OpenEdge ABL
62 lines
1.6 KiB
OpenEdge ABL
/*
|
|
Two dimension arrays
|
|
*/
|
|
|
|
%module arrays_global_twodim
|
|
|
|
%inline %{
|
|
#define ARRAY_LEN_X 2
|
|
#define ARRAY_LEN_Y 4
|
|
|
|
typedef enum {One, Two, Three, Four, Five} finger;
|
|
|
|
typedef struct {
|
|
double double_field;
|
|
} SimpleStruct;
|
|
|
|
char array_c [ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
signed char array_sc[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
unsigned char array_uc[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
short array_s [ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
unsigned short array_us[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
int array_i [ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
unsigned int array_ui[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
long array_l [ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
unsigned long array_ul[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
long long array_ll[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
float array_f [ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
double array_d [ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
SimpleStruct array_struct[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
SimpleStruct* array_structpointers[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
int* array_ipointers [ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
finger array_enum[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
finger* array_enumpointers[ARRAY_LEN_X][ARRAY_LEN_Y];
|
|
const int array_const_i[ARRAY_LEN_X][ARRAY_LEN_Y] = { {10, 11, 12, 13}, {14, 15, 16, 17} };
|
|
|
|
void fn_taking_arrays(SimpleStruct array_struct[ARRAY_LEN_X][ARRAY_LEN_Y]) {}
|
|
|
|
int get_2d_array(int (*array)[ARRAY_LEN_Y], int x, int y){
|
|
return array[x][y];
|
|
}
|
|
%}
|
|
|
|
#ifdef __cplusplus
|
|
%inline
|
|
{
|
|
|
|
struct Material
|
|
{
|
|
};
|
|
|
|
enum {
|
|
Size = 32
|
|
};
|
|
|
|
const Material * chitMat[Size][Size];
|
|
Material hitMat_val[Size][Size];
|
|
Material *hitMat[Size][Size];
|
|
}
|
|
|
|
#endif
|
|
|