00001 #ifndef classreg_h 00002 #define classreg_h 00003 #include <stdio.h> 00004 00005 #if HAVE_IV 00006 #include <InterViews/resource.h> 00007 #else 00008 #define nil 0 00009 #undef boolean 00010 typedef unsigned int boolean; 00011 #endif 00012 00013 struct Object; 00014 00015 typedef struct Member_func { 00016 char* name; double (*member)(void*); 00017 }Member_func; 00018 00019 typedef struct Member_ret_obj_func { 00020 char* name; Object** (*member)(void*); 00021 }Member_ret_obj_func; 00022 00023 typedef struct Member_ret_str_func { 00024 char* name; char** (*member)(void*); 00025 }Member_ret_str_func; 00026 00027 extern "C" { 00028 extern char* gargstr(int); 00029 extern double* getarg(int); 00030 extern double chkarg(int, double min, double max); 00031 extern int ifarg(int); 00032 extern void class2oc(char*, void* (*cons)(Object*), void (*destruct)(void*), 00033 Member_func*, 00034 boolean (*checkpoint)(void**) = nil, 00035 Member_ret_obj_func* = nil, 00036 Member_ret_str_func* = nil); 00037 } 00038 00039 #endif