From 4765624c39dffb085554b1459b3e80bcbf347791 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Sat, 4 Aug 2007 15:01:53 +0200 Subject: Refactor directory and source file layout. darcs-hash:0eb031a60f3b86a678869960867410811ca5325c --- Objective-C/libobjcl.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Objective-C/libobjcl.h (limited to 'Objective-C/libobjcl.h') diff --git a/Objective-C/libobjcl.h b/Objective-C/libobjcl.h new file mode 100644 index 0000000..4d6d092 --- /dev/null +++ b/Objective-C/libobjcl.h @@ -0,0 +1,62 @@ +/* -*- mode: objc; coding: utf-8 -*- */ + +#import "Foundation/Foundation.h" +#include + +typedef struct objcl_object +{ + char* type; + + union + { + id id_val; + Class class_val; + NSException *exc_val; + SEL sel_val; + char char_val; + short short_val; + int int_val; + long long_val; + long long long_long_val; + float float_val; + double double_val; + BOOL bool_val; + char *charptr_val; + void *ptr_val; + } data; +} *OBJCL_OBJ_DATA; + + +#define EXCEPTION_TYPESPEC "ERROR" + + +void +objcl_initialise_runtime (void); + +void +objcl_shutdown_runtime (void); + +void * +objcl_invoke_instance_method (OBJCL_OBJ_DATA receiver, + const char *method_name, + int argc, + ...); + +void * +objcl_invoke_class_method (OBJCL_OBJ_DATA class, + const char *method_name, + int argc, + ...); + +void * +objcl_find_class (const char *class_name); + +/* Return a null-terminated list of type information strings. + The first entry describes the type of the method's return value. */ +char ** +objcl_query_arglist_info (void *receiver, + const char *method_name); + + +const char * +objcl_class_name (OBJCL_OBJ_DATA class); -- cgit v1.2.3