1#!/usr/bin/env python3 2# encoding: utf-8 3 4from ctypes import CDLL, c_bool, c_int, c_uint, c_char_p, c_void_p 5from ctypes.util import find_library 6 7import os 8 9 10# load the eolian so/dll already built in source tree 11script_path = os.path.dirname(os.path.realpath(__file__)) 12root_path = os.path.abspath(os.path.join(script_path, '..', '..', '..')) 13 14search_in = [ 15 os.path.join(root_path, 'src', 'lib', 'eolian', '.libs'), 16 os.path.join(root_path, 'build', 'src', 'lib', 'eolian'), 17] 18 19if 'EOLIAN_SO_DIR' in os.environ: 20 search_in.insert(0, os.environ['EOLIAN_SO_DIR']) 21 22search_names = ('libeolian.so', 'eolian.dll') 23 24file_path = None 25for lib_dir in search_in: 26 for name in search_names: 27 f = os.path.join(lib_dir, name) 28 if os.path.exists(f): 29 file_path = f 30 31if not file_path: 32 raise RuntimeError('Error: cannot find a built eolian lib in source tree') 33 34lib = CDLL(file_path) 35 36 37# EAPI int eolian_init(void); 38lib.eolian_init.argtypes = None 39lib.eolian_init.restype = c_int 40 41# EAPI int eolian_shutdown(void); 42lib.eolian_shutdown.argtypes = None 43lib.eolian_shutdown.restype = c_int 44 45 46# Eolian_State ############################################################## 47 48# EAPI Eolian_State *eolian_state_new(void); 49lib.eolian_state_new.argtypes = None 50lib.eolian_state_new.restype = c_void_p 51 52# EAPI void eolian_state_free(Eolian_State *state); 53lib.eolian_state_free.argtypes = (c_void_p,) 54lib.eolian_state_free.restype = None 55 56# EAPI const Eolian_Unit *eolian_state_file_parse(Eolian_State *state, const char *filename); 57lib.eolian_state_file_parse.argtypes = (c_void_p, c_char_p) 58lib.eolian_state_file_parse.restype = c_void_p 59 60# EAPI const Eolian_Unit *eolian_state_file_path_parse(Eolian_State *state, const char *filepath); 61lib.eolian_state_file_path_parse.argtypes = (c_void_p, c_char_p) 62lib.eolian_state_file_path_parse.restype = c_void_p 63 64# EAPI Eina_Iterator *eolian_state_eo_file_paths_get(const Eolian_State *state); 65lib.eolian_state_eo_file_paths_get.argtypes = (c_void_p,) 66lib.eolian_state_eo_file_paths_get.restype = c_void_p 67 68# EAPI Eina_Iterator *eolian_state_eot_file_paths_get(const Eolian_State *state); 69lib.eolian_state_eot_file_paths_get.argtypes = (c_void_p,) 70lib.eolian_state_eot_file_paths_get.restype = c_void_p 71 72# EAPI Eina_Iterator *eolian_state_eo_files_get(const Eolian_State *state); 73lib.eolian_state_eo_files_get.argtypes = (c_void_p,) 74lib.eolian_state_eo_files_get.restype = c_void_p 75 76# EAPI Eina_Iterator *eolian_state_eot_files_get(const Eolian_State *state); 77lib.eolian_state_eot_files_get.argtypes = (c_void_p,) 78lib.eolian_state_eot_files_get.restype = c_void_p 79 80# EAPI Eina_Bool eolian_state_directory_add(Eolian_State *state, const char *dir); 81lib.eolian_state_directory_add.argtypes = (c_void_p, c_char_p) 82lib.eolian_state_directory_add.restype = c_bool 83 84# EAPI Eina_Bool eolian_state_system_directory_add(Eolian_State *state); 85lib.eolian_state_system_directory_add.argtypes = (c_void_p,) 86lib.eolian_state_system_directory_add.restype = c_bool 87 88# EAPI Eina_Bool eolian_state_all_eo_files_parse(Eolian_State *state); 89lib.eolian_state_all_eo_files_parse.argtypes = (c_void_p,) 90lib.eolian_state_all_eo_files_parse.restype = c_bool 91 92# EAPI Eina_Bool eolian_state_all_eot_files_parse(Eolian_State *state); 93lib.eolian_state_all_eot_files_parse.argtypes = (c_void_p,) 94lib.eolian_state_all_eot_files_parse.restype = c_bool 95 96# EAPI Eina_Bool eolian_state_check(const Eolian_State *state); 97lib.eolian_state_check.argtypes = (c_void_p,) 98lib.eolian_state_check.restype = c_bool 99 100# EAPI const Eolian_Unit *eolian_state_unit_by_file_get(const Eolian_State *state, const char *file_name); 101lib.eolian_state_unit_by_file_get.argtypes = (c_void_p, c_char_p) 102lib.eolian_state_unit_by_file_get.restype = c_void_p 103 104# EAPI Eina_Iterator *eolian_state_units_get(const Eolian_State *state); 105lib.eolian_state_units_get.argtypes = (c_void_p,) 106lib.eolian_state_units_get.restype = c_void_p 107 108# EAPI Eina_Iterator *eolian_state_objects_by_file_get(const Eolian_State *state, const char *file_name); 109lib.eolian_state_objects_by_file_get.argtypes = (c_void_p, c_char_p) 110lib.eolian_state_objects_by_file_get.restype = c_void_p 111 112# EAPI const Eolian_Class *eolian_state_class_by_file_get(const Eolian_State *state, const char *file_name); 113lib.eolian_state_class_by_file_get.argtypes = (c_void_p, c_char_p) 114lib.eolian_state_class_by_file_get.restype = c_void_p 115 116# EAPI Eina_Iterator *eolian_state_constants_by_file_get(const Eolian_State *state, const char *file_name); 117lib.eolian_state_constants_by_file_get.argtypes = (c_void_p, c_char_p) 118lib.eolian_state_constants_by_file_get.restype = c_void_p 119 120# EAPI Eina_Iterator *eolian_state_aliases_by_file_get(const Eolian_State *state, const char *file_name); 121lib.eolian_state_aliases_by_file_get.argtypes = (c_void_p, c_char_p) 122lib.eolian_state_aliases_by_file_get.restype = c_void_p 123 124# EAPI Eina_Iterator *eolian_state_structs_by_file_get(const Eolian_State *state, const char *file_name); 125lib.eolian_state_structs_by_file_get.argtypes = (c_void_p, c_char_p) 126lib.eolian_state_structs_by_file_get.restype = c_void_p 127 128# EAPI Eina_Iterator *eolian_state_enums_by_file_get(const Eolian_State *state, const char *file_name); 129lib.eolian_state_enums_by_file_get.argtypes = (c_void_p, c_char_p) 130lib.eolian_state_enums_by_file_get.restype = c_void_p 131 132 133# Eolian_Unit ############################################################### 134 135# EAPI Eina_Iterator *eolian_unit_children_get(const Eolian_Unit *unit); 136lib.eolian_unit_children_get.argtypes = (c_void_p,) 137lib.eolian_unit_children_get.restype = c_void_p 138 139# EAPI const Eolian_State *eolian_unit_state_get(const Eolian_Unit *unit); 140lib.eolian_unit_state_get.argtypes = (c_void_p,) 141lib.eolian_unit_state_get.restype = c_void_p 142 143# EAPI const char *eolian_unit_file_get(const Eolian_Unit *unit); 144lib.eolian_unit_file_get.argtypes = (c_void_p,) 145lib.eolian_unit_file_get.restype = c_char_p 146 147# EAPI const char *eolian_unit_file_path_get(const Eolian_Unit *unit); 148lib.eolian_unit_file_path_get.argtypes = (c_void_p,) 149lib.eolian_unit_file_path_get.restype = c_char_p 150 151# EAPI unsigned short eolian_unit_version_get(const Eolian_Unit *unit); 152lib.eolian_unit_version_get.argtypes = (c_void_p,) 153lib.eolian_unit_version_get.restype = c_uint 154 155# EAPI const Eolian_Object *eolian_unit_object_by_name_get(const Eolian_Unit *unit, const char *name); 156lib.eolian_unit_object_by_name_get.argtypes = (c_void_p, c_char_p) 157lib.eolian_unit_object_by_name_get.restype = c_void_p 158 159# EAPI Eina_Iterator *eolian_unit_objects_get(const Eolian_Unit *unit); 160lib.eolian_unit_objects_get.argtypes = (c_void_p,) 161lib.eolian_unit_objects_get.restype = c_void_p 162 163# EAPI const Eolian_Class *eolian_unit_class_by_name_get(const Eolian_Unit *unit, const char *class_name); 164lib.eolian_unit_class_by_name_get.argtypes = (c_void_p, c_char_p) 165lib.eolian_unit_class_by_name_get.restype = c_void_p 166 167# EAPI Eina_Iterator *eolian_unit_classes_get(const Eolian_Unit *unit); 168lib.eolian_unit_classes_get.argtypes = (c_void_p,) 169lib.eolian_unit_classes_get.restype = c_void_p 170 171# EAPI const Eolian_Typedecl *eolian_unit_alias_by_name_get(const Eolian_Unit *unit, const char *name); 172lib.eolian_unit_alias_by_name_get.argtypes = (c_void_p, c_char_p) 173lib.eolian_unit_alias_by_name_get.restype = c_void_p 174 175# EAPI const Eolian_Typedecl *eolian_unit_struct_by_name_get(const Eolian_Unit *unit, const char *name); 176lib.eolian_unit_struct_by_name_get.argtypes = (c_void_p, c_char_p) 177lib.eolian_unit_struct_by_name_get.restype = c_void_p 178 179# EAPI const Eolian_Typedecl *eolian_unit_enum_by_name_get(const Eolian_Unit *unit, const char *name); 180lib.eolian_unit_enum_by_name_get.argtypes = (c_void_p, c_char_p) 181lib.eolian_unit_enum_by_name_get.restype = c_void_p 182 183# EAPI Eina_Iterator *eolian_unit_aliases_get(const Eolian_Unit *unit); 184lib.eolian_unit_aliases_get.argtypes = (c_void_p,) 185lib.eolian_unit_aliases_get.restype = c_void_p 186 187# EAPI Eina_Iterator *eolian_unit_structs_get(const Eolian_Unit *unit); 188lib.eolian_unit_structs_get.argtypes = (c_void_p,) 189lib.eolian_unit_structs_get.restype = c_void_p 190 191# EAPI Eina_Iterator *eolian_unit_enums_get(const Eolian_Unit *unit); 192lib.eolian_unit_enums_get.argtypes = (c_void_p,) 193lib.eolian_unit_enums_get.restype = c_void_p 194 195# EAPI const Eolian_Constant *eolian_unit_constant_by_name_get(const Eolian_Unit *unit, const char *name); 196lib.eolian_unit_constant_by_name_get.argtypes = (c_void_p, c_char_p) 197lib.eolian_unit_constant_by_name_get.restype = c_void_p 198 199# EAPI Eina_Iterator *eolian_unit_constants_get(const Eolian_Unit *unit); 200lib.eolian_unit_constants_get.argtypes = (c_void_p,) 201lib.eolian_unit_constants_get.restype = c_void_p 202 203 204# Eolian_Object ############################################################# 205 206# EAPI Eolian_Object_Type eolian_object_type_get(const Eolian_Object *obj); 207lib.eolian_object_type_get.argtypes = (c_void_p,) 208lib.eolian_object_type_get.restype = c_int 209 210# EAPI const Eolian_Unit *eolian_object_unit_get(const Eolian_Object *obj); 211lib.eolian_object_unit_get.argtypes = (c_void_p,) 212lib.eolian_object_unit_get.restype = c_void_p 213 214# EAPI const char *eolian_object_file_get(const Eolian_Object *obj); 215lib.eolian_object_file_get.argtypes = (c_void_p,) 216lib.eolian_object_file_get.restype = c_char_p 217 218# EAPI int eolian_object_line_get(const Eolian_Object *obj); 219lib.eolian_object_line_get.argtypes = (c_void_p,) 220lib.eolian_object_line_get.restype = c_int 221 222# EAPI int eolian_object_column_get(const Eolian_Object *obj); 223lib.eolian_object_column_get.argtypes = (c_void_p,) 224lib.eolian_object_column_get.restype = c_int 225 226# EAPI const char *eolian_object_name_get(const Eolian_Object *obj); 227lib.eolian_object_name_get.argtypes = (c_void_p,) 228lib.eolian_object_name_get.restype = c_char_p 229 230# EAPI const char *eolian_object_c_name_get(const Eolian_Object *obj); 231lib.eolian_object_c_name_get.argtypes = (c_void_p,) 232lib.eolian_object_c_name_get.restype = c_char_p 233 234# EAPI const char *eolian_object_short_name_get(const Eolian_Object *obj); 235lib.eolian_object_short_name_get.argtypes = (c_void_p,) 236lib.eolian_object_short_name_get.restype = c_char_p 237 238# EAPI Eina_Iterator *eolian_object_namespaces_get(const Eolian_Object *obj); 239lib.eolian_object_namespaces_get.argtypes = (c_void_p,) 240lib.eolian_object_namespaces_get.restype = c_void_p 241 242# EAPI Eina_Bool eolian_object_is_beta(const Eolian_Object *obj); 243lib.eolian_object_is_beta.argtypes = (c_void_p,) 244lib.eolian_object_is_beta.restype = c_bool 245 246 247# Eolian_Class ############################################################## 248 249# EAPI Eolian_Class_Type eolian_class_type_get(const Eolian_Class *klass); 250lib.eolian_class_type_get.argtypes = (c_void_p,) 251lib.eolian_class_type_get.restype = c_int 252 253# EAPI const Eolian_Documentation *eolian_class_documentation_get(const Eolian_Class *klass); 254lib.eolian_class_documentation_get.argtypes = (c_void_p,) 255lib.eolian_class_documentation_get.restype = c_void_p 256 257# EAPI Eina_Stringshare *eolian_class_c_prefix_get(const Eolian_Class *klass); 258lib.eolian_class_c_prefix_get.argtypes = (c_void_p,) 259lib.eolian_class_c_prefix_get.restype = c_char_p 260 261# EAPI Eina_Stringshare* eolian_class_event_c_prefix_get(const Eolian_Class *klass); 262lib.eolian_class_event_c_prefix_get.argtypes = (c_void_p,) 263lib.eolian_class_event_c_prefix_get.restype = c_char_p 264 265# EAPI Eina_Stringshare *eolian_class_data_type_get(const Eolian_Class *klass); 266lib.eolian_class_data_type_get.argtypes = (c_void_p,) 267lib.eolian_class_data_type_get.restype = c_char_p 268 269# EAPI const Eolian_Class *eolian_class_parent_get(const Eolian_Class *klass); 270lib.eolian_class_parent_get.argtypes = (c_void_p,) 271lib.eolian_class_parent_get.restype = c_void_p 272 273# EAPI Eina_Iterator *eolian_class_requires_get(const Eolian_Class *klass); 274lib.eolian_class_requires_get.argtypes = (c_void_p,) 275lib.eolian_class_requires_get.restype = c_void_p 276 277 278# EAPI Eina_Iterator *eolian_class_extensions_get(const Eolian_Class *klass); 279lib.eolian_class_extensions_get.argtypes = (c_void_p,) 280lib.eolian_class_extensions_get.restype = c_void_p 281 282# EAPI Eina_Iterator *eolian_class_functions_get(const Eolian_Class *klass, Eolian_Function_Type func_type); 283lib.eolian_class_functions_get.argtypes = (c_void_p, c_int) 284lib.eolian_class_functions_get.restype = c_void_p 285 286# EAPI const Eolian_Function *eolian_class_function_by_name_get(const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type); 287lib.eolian_class_function_by_name_get.argtypes = (c_void_p, c_char_p, c_int) 288lib.eolian_class_function_by_name_get.restype = c_void_p 289 290# EAPI Eina_Iterator *eolian_class_implements_get(const Eolian_Class *klass); 291lib.eolian_class_implements_get.argtypes = (c_void_p,) 292lib.eolian_class_implements_get.restype = c_void_p 293 294# EAPI Eina_Iterator *eolian_class_constructors_get(const Eolian_Class *klass); 295lib.eolian_class_constructors_get.argtypes = (c_void_p,) 296lib.eolian_class_constructors_get.restype = c_void_p 297 298# EAPI Eina_Iterator *eolian_class_events_get(const Eolian_Class *klass); 299lib.eolian_class_events_get.argtypes = (c_void_p,) 300lib.eolian_class_events_get.restype = c_void_p 301 302# EAPI Eina_Iterator *eolian_class_parts_get(const Eolian_Class *klass); 303lib.eolian_class_parts_get.argtypes = (c_void_p,) 304lib.eolian_class_parts_get.restype = c_void_p 305 306# EAPI const Eolian_Event *eolian_class_event_by_name_get(const Eolian_Class *klass, const char *event_name); 307lib.eolian_class_event_by_name_get.argtypes = (c_void_p, c_char_p) 308lib.eolian_class_event_by_name_get.restype = c_void_p 309 310# EAPI Eina_Bool eolian_class_ctor_enable_get(const Eolian_Class *klass); 311lib.eolian_class_ctor_enable_get.argtypes = (c_void_p,) 312lib.eolian_class_ctor_enable_get.restype = c_bool 313 314# EAPI Eina_Bool eolian_class_dtor_enable_get(const Eolian_Class *klass); 315lib.eolian_class_dtor_enable_get.argtypes = (c_void_p,) 316lib.eolian_class_dtor_enable_get.restype = c_bool 317 318# EAPI Eina_Stringshare *eolian_class_c_get_function_name_get(const Eolian_Class *klass); 319lib.eolian_class_c_get_function_name_get.argtypes = (c_void_p,) 320lib.eolian_class_c_get_function_name_get.restype = c_void_p # Stringshare TO BE FREED 321 322# EAPI Eina_Stringshare *eolian_class_c_macro_get(const Eolian_Class *klass); 323lib.eolian_class_c_macro_get.argtypes = (c_void_p,) 324lib.eolian_class_c_macro_get.restype = c_void_p # Stringshare TO BE FREED 325 326# EAPI Eina_Stringshare *eolian_class_c_data_type_get(const Eolian_Class *klass); 327lib.eolian_class_c_data_type_get.argtypes = (c_void_p,) 328lib.eolian_class_c_data_type_get.restype = c_void_p # Stringshare TO BE FREED 329 330 331# Eolian_Function ########################################################### 332 333# EAPI Eolian_Function_Type eolian_function_type_get(const Eolian_Function *function_id); 334lib.eolian_function_type_get.argtypes = (c_void_p,) 335lib.eolian_function_type_get.restype = c_int 336 337# EAPI Eolian_Object_Scope eolian_function_scope_get(const Eolian_Function *function_id, Eolian_Function_Type ftype); 338lib.eolian_function_scope_get.argtypes = (c_void_p, c_int) 339lib.eolian_function_scope_get.restype = c_int 340 341# EAPI Eina_Stringshare *eolian_function_full_c_name_get(const Eolian_Function *function_id, Eolian_Function_Type ftype); 342lib.eolian_function_full_c_name_get.argtypes = (c_void_p, c_int) 343lib.eolian_function_full_c_name_get.restype = c_void_p # Stringshare TO BE FREED 344 345# EAPI const Eolian_Implement *eolian_function_implement_get(const Eolian_Function *function_id); 346lib.eolian_function_implement_get.argtypes = (c_void_p,) 347lib.eolian_function_implement_get.restype = c_void_p 348 349# EAPI Eina_Bool eolian_function_is_static(const Eolian_Function *function_id); 350lib.eolian_function_is_static.argtypes = (c_void_p,) 351lib.eolian_function_is_static.restype = c_bool 352 353# EAPI Eina_Bool eolian_function_is_constructor(const Eolian_Function *function_id, const Eolian_Class *klass); 354lib.eolian_function_is_constructor.argtypes = (c_void_p, c_void_p) 355lib.eolian_function_is_constructor.restype = c_bool 356 357# EAPI Eina_Bool eolian_parameter_is_by_ref(const Eolian_Function_Parameter *param_desc); 358lib.eolian_parameter_is_by_ref.argtypes = (c_void_p,) 359lib.eolian_parameter_is_by_ref.restype = c_bool 360 361# EAPI Eina_Bool eolian_parameter_is_move(const Eolian_Function_Parameter *param_desc); 362lib.eolian_parameter_is_move.argtypes = (c_void_p,) 363lib.eolian_parameter_is_move.restype = c_bool 364 365# EAPI Eina_Stringshare *eolian_parameter_c_type_get(const Eolian_Function_Parameter *param_desc, Eina_Bool as_return); 366lib.eolian_parameter_c_type_get.argtypes = (c_void_p, c_bool) 367lib.eolian_parameter_c_type_get.restype = c_void_p # Stringshare TO BE FREED 368 369# EAPI const Eolian_Type *eolian_function_return_type_get(const Eolian_Function *function_id, Eolian_Function_Type ftype); 370lib.eolian_function_return_type_get.argtypes = (c_void_p, c_int) 371lib.eolian_function_return_type_get.restype = c_void_p 372 373# EAPI const Eolian_Expression * eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype); 374lib.eolian_function_return_default_value_get.argtypes = (c_void_p, c_int) 375lib.eolian_function_return_default_value_get.restype = c_void_p 376 377# EAPI const Eolian_Documentation *eolian_function_return_documentation_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype); 378lib.eolian_function_return_documentation_get.argtypes = (c_void_p, c_int) 379lib.eolian_function_return_documentation_get.restype = c_void_p 380 381# EAPI Eina_Bool eolian_function_return_allow_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype); 382lib.eolian_function_return_allow_unused.argtypes = (c_void_p, c_int) 383lib.eolian_function_return_allow_unused.restype = c_bool 384 385# EAPI Eina_Stringshare *eolian_function_return_c_type_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype); 386lib.eolian_function_return_c_type_get.argtypes = (c_void_p, c_int) 387lib.eolian_function_return_c_type_get.restype = c_void_p # Stringshare TO BE FREED 388 389# EAPI Eina_Bool eolian_function_object_is_const(const Eolian_Function *function_id); 390lib.eolian_function_object_is_const.argtypes = (c_void_p,) 391lib.eolian_function_object_is_const.restype = c_bool 392 393# EAPI const Eolian_Class *eolian_function_class_get(const Eolian_Function *function_id); 394lib.eolian_function_class_get.argtypes = (c_void_p,) 395lib.eolian_function_class_get.restype = c_void_p 396 397# TODO FIXME 398# EAPI Eina_Bool eolian_function_is_function_pointer(const Eolian_Function *function_id); 399# lib.eolian_function_is_function_pointer.argtypes = (c_void_p,) 400# lib.eolian_function_is_function_pointer.restype = c_bool 401 402# EAPI Eina_Iterator *eolian_function_parameters_get(const Eolian_Function *function_id); 403lib.eolian_function_parameters_get.argtypes = (c_void_p,) 404lib.eolian_function_parameters_get.restype = c_void_p 405 406# EAPI Eina_Iterator *eolian_property_keys_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype); 407lib.eolian_property_keys_get.argtypes = (c_void_p, c_int) 408lib.eolian_property_keys_get.restype = c_void_p 409 410# EAPI Eina_Iterator *eolian_property_values_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype); 411lib.eolian_property_values_get.argtypes = (c_void_p, c_int) 412lib.eolian_property_values_get.restype = c_void_p 413 414 415# Eolian_Function_Parameter ################################################# 416 417# EAPI Eolian_Parameter_Direction eolian_parameter_direction_get(const Eolian_Function_Parameter *param); 418lib.eolian_parameter_direction_get.argtypes = (c_void_p,) 419lib.eolian_parameter_direction_get.restype = c_int 420 421# EAPI const Eolian_Type *eolian_parameter_type_get(const Eolian_Function_Parameter *param); 422lib.eolian_parameter_type_get.argtypes = (c_void_p,) 423lib.eolian_parameter_type_get.restype = c_void_p 424 425# EAPI const Eolian_Expression *eolian_parameter_default_value_get(const Eolian_Function_Parameter *param); 426lib.eolian_parameter_default_value_get.argtypes = (c_void_p,) 427lib.eolian_parameter_default_value_get.restype = c_void_p 428 429# EAPI const Eolian_Documentation *eolian_parameter_documentation_get(const Eolian_Function_Parameter *param); 430lib.eolian_parameter_documentation_get.argtypes = (c_void_p,) 431lib.eolian_parameter_documentation_get.restype = c_void_p 432 433# EAPI Eina_Bool eolian_parameter_is_optional(const Eolian_Function_Parameter *param_desc); 434lib.eolian_parameter_is_optional.argtypes = (c_void_p,) 435lib.eolian_parameter_is_optional.restype = c_bool 436 437 438# Eolian_Implement ########################################################## 439 440# EAPI const Eolian_Class *eolian_implement_class_get(const Eolian_Implement *impl); 441lib.eolian_implement_class_get.argtypes = (c_void_p,) 442lib.eolian_implement_class_get.restype = c_void_p 443 444# EAPI const Eolian_Class *eolian_implement_implementing_class_get(const Eolian_Implement *impl); 445lib.eolian_implement_implementing_class_get.argtypes = (c_void_p,) 446lib.eolian_implement_implementing_class_get.restype = c_void_p 447 448# EAPI const Eolian_Function *eolian_implement_function_get(const Eolian_Implement *impl, Eolian_Function_Type *func_type); 449lib.eolian_implement_function_get.argtypes = (c_void_p, c_void_p) 450lib.eolian_implement_function_get.restype = c_void_p 451 452# EAPI const Eolian_Documentation *eolian_implement_documentation_get(const Eolian_Implement *impl, Eolian_Function_Type f_type); 453lib.eolian_implement_documentation_get.argtypes = (c_void_p, c_int) 454lib.eolian_implement_documentation_get.restype = c_void_p 455 456# EAPI Eina_Bool eolian_implement_is_auto(const Eolian_Implement *impl, Eolian_Function_Type f_type); 457lib.eolian_implement_is_auto.argtypes = (c_void_p, c_int) 458lib.eolian_implement_is_auto.restype = c_bool 459 460# EAPI Eina_Bool eolian_implement_is_empty(const Eolian_Implement *impl, Eolian_Function_Type f_type); 461lib.eolian_implement_is_empty.argtypes = (c_void_p, c_int) 462lib.eolian_implement_is_empty.restype = c_bool 463 464# EAPI Eina_Bool eolian_implement_is_pure_virtual(const Eolian_Implement *impl, Eolian_Function_Type f_type); 465lib.eolian_implement_is_pure_virtual.argtypes = (c_void_p, c_int) 466lib.eolian_implement_is_pure_virtual.restype = c_bool 467 468# EAPI Eina_Bool eolian_implement_is_prop_get(const Eolian_Implement *impl); 469lib.eolian_implement_is_prop_get.argtypes = (c_void_p,) 470lib.eolian_implement_is_prop_get.restype = c_bool 471 472# EAPI Eina_Bool eolian_implement_is_prop_set(const Eolian_Implement *impl); 473lib.eolian_implement_is_prop_set.argtypes = (c_void_p,) 474lib.eolian_implement_is_prop_set.restype = c_bool 475 476 477# Eolian_Constructor ######################################################## 478 479# EAPI const Eolian_Class *eolian_constructor_class_get(const Eolian_Constructor *ctor); 480lib.eolian_constructor_class_get.argtypes = (c_void_p,) 481lib.eolian_constructor_class_get.restype = c_void_p 482 483# EAPI const Eolian_Function *eolian_constructor_function_get(const Eolian_Constructor *ctor); 484lib.eolian_constructor_function_get.argtypes = (c_void_p,) 485lib.eolian_constructor_function_get.restype = c_void_p 486 487# EAPI Eina_Bool eolian_constructor_is_optional(const Eolian_Constructor *ctor); 488lib.eolian_constructor_is_optional.argtypes = (c_void_p,) 489lib.eolian_constructor_is_optional.restype = c_bool 490 491 492# Eolian_Event ############################################################## 493 494# EAPI Eina_Stringshare *eolian_event_c_macro_get(const Eolian_Event *event); 495lib.eolian_event_c_macro_get.argtypes = (c_void_p,) 496lib.eolian_event_c_macro_get.restype = c_void_p # Stringshare TO BE FREED 497 498# EAPI const Eolian_Type *eolian_event_type_get(const Eolian_Event *event); 499lib.eolian_event_type_get.argtypes = (c_void_p,) 500lib.eolian_event_type_get.restype = c_void_p 501 502# EAPI const Eolian_Documentation *eolian_event_documentation_get(const Eolian_Event *event); 503lib.eolian_event_documentation_get.argtypes = (c_void_p,) 504lib.eolian_event_documentation_get.restype = c_void_p 505 506# EAPI const Eolian_Class *eolian_event_class_get(const Eolian_Event *event); 507lib.eolian_event_class_get.argtypes = (c_void_p,) 508lib.eolian_event_class_get.restype = c_void_p 509 510# EAPI Eolian_Object_Scope eolian_event_scope_get(const Eolian_Event *event); 511lib.eolian_event_scope_get.argtypes = (c_void_p,) 512lib.eolian_event_scope_get.restype = c_int 513 514# EAPI Eina_Bool eolian_event_is_hot(const Eolian_Event *event); 515lib.eolian_event_is_hot.argtypes = (c_void_p,) 516lib.eolian_event_is_hot.restype = c_bool 517 518# EAPI Eina_Bool eolian_event_is_restart(const Eolian_Event *event); 519lib.eolian_event_is_restart.argtypes = (c_void_p,) 520lib.eolian_event_is_restart.restype = c_bool 521 522 523# Eolian_Part ############################################################### 524 525# EAPI const Eolian_Class *eolian_part_class_get(const Eolian_Part *part); 526lib.eolian_part_class_get.argtypes = (c_void_p,) 527lib.eolian_part_class_get.restype = c_void_p 528 529# EAPI const Eolian_Documentation *eolian_part_documentation_get(const Eolian_Part *part); 530lib.eolian_part_documentation_get.argtypes = (c_void_p,) 531lib.eolian_part_documentation_get.restype = c_void_p 532 533 534# Eolian_Typedecl ########################################################### 535 536# EAPI Eolian_Typedecl_Type eolian_typedecl_type_get(const Eolian_Typedecl *tp); 537lib.eolian_typedecl_type_get.argtypes = (c_void_p,) 538lib.eolian_typedecl_type_get.restype = c_int 539 540# EAPI Eina_Iterator *eolian_typedecl_struct_fields_get(const Eolian_Typedecl *tp); 541lib.eolian_typedecl_struct_fields_get.argtypes = (c_void_p,) 542lib.eolian_typedecl_struct_fields_get.restype = c_void_p 543 544# EAPI const Eolian_Struct_Type_Field *eolian_typedecl_struct_field_get(const Eolian_Typedecl *tp, const char *field); 545lib.eolian_typedecl_struct_field_get.argtypes = (c_void_p, c_char_p) 546lib.eolian_typedecl_struct_field_get.restype = c_void_p 547 548# EAPI const Eolian_Documentation *eolian_typedecl_struct_field_documentation_get(const Eolian_Struct_Type_Field *fl); 549lib.eolian_typedecl_struct_field_documentation_get.argtypes = (c_void_p,) 550lib.eolian_typedecl_struct_field_documentation_get.restype = c_void_p 551 552# EAPI const Eolian_Type *eolian_typedecl_struct_field_type_get(const Eolian_Struct_Type_Field *fl); 553lib.eolian_typedecl_struct_field_type_get.argtypes = (c_void_p,) 554lib.eolian_typedecl_struct_field_type_get.restype = c_void_p 555 556# EAPI Eina_Bool eolian_typedecl_struct_field_is_by_ref(const Eolian_Struct_Type_Field *fl); 557lib.eolian_typedecl_struct_field_is_by_ref.argtypes = (c_void_p,) 558lib.eolian_typedecl_struct_field_is_by_ref.restype = c_bool 559 560# EAPI Eina_Bool eolian_typedecl_struct_field_is_move(const Eolian_Struct_Type_Field *fl); 561lib.eolian_typedecl_struct_field_is_move.argtypes = (c_void_p,) 562lib.eolian_typedecl_struct_field_is_move.restype = c_bool 563 564# EAPI Eina_Stringshare *eolian_typedecl_struct_field_c_type_get(const Eolian_Struct_Type_Field *fl); 565lib.eolian_typedecl_struct_field_c_type_get.argtypes = (c_void_p,) 566lib.eolian_typedecl_struct_field_c_type_get.restype = c_void_p # Stringshare TO BE FREED 567 568# EAPI Eina_Iterator *eolian_typedecl_enum_fields_get(const Eolian_Typedecl *tp); 569lib.eolian_typedecl_enum_fields_get.argtypes = (c_void_p,) 570lib.eolian_typedecl_enum_fields_get.restype = c_void_p 571 572# EAPI const Eolian_Enum_Type_Field *eolian_typedecl_enum_field_get(const Eolian_Typedecl *tp, const char *field); 573lib.eolian_typedecl_enum_field_get.argtypes = (c_void_p, c_char_p) 574lib.eolian_typedecl_enum_field_get.restype = c_void_p 575 576# EAPI Eina_Stringshare *eolian_typedecl_enum_field_c_constant_get(const Eolian_Enum_Type_Field *fl); 577lib.eolian_typedecl_enum_field_c_constant_get.argtypes = (c_void_p,) 578lib.eolian_typedecl_enum_field_c_constant_get.restype = c_void_p # Stringshare TO BE FREED 579 580# EAPI const Eolian_Documentation *eolian_typedecl_enum_field_documentation_get(const Eolian_Enum_Type_Field *fl); 581lib.eolian_typedecl_enum_field_documentation_get.argtypes = (c_void_p,) 582lib.eolian_typedecl_enum_field_documentation_get.restype = c_void_p 583 584# EAPI const Eolian_Expression *eolian_typedecl_enum_field_value_get(const Eolian_Enum_Type_Field *fl, Eina_Bool force); 585lib.eolian_typedecl_enum_field_value_get.argtypes = (c_void_p, c_bool) 586lib.eolian_typedecl_enum_field_value_get.restype = c_void_p 587 588# EAPI Eina_Stringshare *eolian_typedecl_enum_legacy_prefix_get(const Eolian_Typedecl *tp); 589lib.eolian_typedecl_enum_legacy_prefix_get.argtypes = (c_void_p,) 590lib.eolian_typedecl_enum_legacy_prefix_get.restype = c_char_p 591 592# EAPI const Eolian_Documentation *eolian_typedecl_documentation_get(const Eolian_Typedecl *tp); 593lib.eolian_typedecl_documentation_get.argtypes = (c_void_p,) 594lib.eolian_typedecl_documentation_get.restype = c_void_p 595 596# EAPI const Eolian_Type *eolian_typedecl_base_type_get(const Eolian_Typedecl *tp); 597lib.eolian_typedecl_base_type_get.argtypes = (c_void_p,) 598lib.eolian_typedecl_base_type_get.restype = c_void_p 599 600# EAPI const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Typedecl *tp); 601lib.eolian_typedecl_aliased_base_get.argtypes = (c_void_p,) 602lib.eolian_typedecl_aliased_base_get.restype = c_void_p 603 604# EAPI Eina_Bool eolian_typedecl_is_extern(const Eolian_Typedecl *tp); 605lib.eolian_typedecl_is_extern.argtypes = (c_void_p,) 606lib.eolian_typedecl_is_extern.restype = c_bool 607 608# EAPI Eina_Stringshare *eolian_typedecl_c_type_get(const Eolian_Typedecl *tp); 609lib.eolian_typedecl_c_type_get.argtypes = (c_void_p,) 610lib.eolian_typedecl_c_type_get.restype = c_void_p # Stringshare TO BE FREED 611 612# EAPI Eina_Stringshare *eolian_typedecl_free_func_get(const Eolian_Typedecl *tp); 613lib.eolian_typedecl_free_func_get.argtypes = (c_void_p,) 614lib.eolian_typedecl_free_func_get.restype = c_char_p 615 616# EAPI const Eolian_Function *eolian_typedecl_function_pointer_get(const Eolian_Typedecl *tp); 617lib.eolian_typedecl_function_pointer_get.argtypes = (c_void_p,) 618lib.eolian_typedecl_function_pointer_get.restype = c_void_p 619 620 621# Eolian_Type ############################################################### 622 623# EAPI Eolian_Type_Type eolian_type_type_get(const Eolian_Type *tp); 624lib.eolian_type_type_get.argtypes = (c_void_p,) 625lib.eolian_type_type_get.restype = c_int 626 627# EAPI Eolian_Type_Builtin_Type eolian_type_builtin_type_get(const Eolian_Type *tp); 628lib.eolian_type_builtin_type_get.argtypes = (c_void_p,) 629lib.eolian_type_builtin_type_get.restype = c_int 630 631# EAPI const Eolian_Type *eolian_type_base_type_get(const Eolian_Type *tp); 632lib.eolian_type_base_type_get.argtypes = (c_void_p,) 633lib.eolian_type_base_type_get.restype = c_void_p 634 635# EAPI const Eolian_Type *eolian_type_next_type_get(const Eolian_Type *tp); 636lib.eolian_type_next_type_get.argtypes = (c_void_p,) 637lib.eolian_type_next_type_get.restype = c_void_p 638 639# EAPI const Eolian_Typedecl *eolian_type_typedecl_get(const Eolian_Type *tp); 640lib.eolian_type_typedecl_get.argtypes = (c_void_p,) 641lib.eolian_type_typedecl_get.restype = c_void_p 642 643# EAPI const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Type *tp); 644lib.eolian_type_aliased_base_get.argtypes = (c_void_p,) 645lib.eolian_type_aliased_base_get.restype = c_void_p 646 647# EAPI const Eolian_Class *eolian_type_class_get(const Eolian_Type *tp); 648lib.eolian_type_class_get.argtypes = (c_void_p,) 649lib.eolian_type_class_get.restype = c_void_p 650 651# EAPI Eina_Bool eolian_type_is_move(const Eolian_Type *tp); 652lib.eolian_type_is_move.argtypes = (c_void_p,) 653lib.eolian_type_is_move.restype = c_bool 654 655# EAPI Eina_Bool eolian_type_is_const(const Eolian_Type *tp); 656lib.eolian_type_is_const.argtypes = (c_void_p,) 657lib.eolian_type_is_const.restype = c_bool 658 659# EAPI Eina_Bool eolian_type_is_ptr(const Eolian_Type *tp); 660lib.eolian_type_is_ptr.argtypes = (c_void_p,) 661lib.eolian_type_is_ptr.restype = c_bool 662 663# EAPI Eina_Stringshare *eolian_type_c_type_get(const Eolian_Type *tp); 664lib.eolian_type_c_type_get.argtypes = (c_void_p,) 665lib.eolian_type_c_type_get.restype = c_void_p # Stringshare TO BE FREED 666 667 668# Eolian_Expression ######################################################### 669 670# EAPI Eina_Stringshare *eolian_expression_serialize(const Eolian_Expression *expr); 671lib.eolian_expression_serialize.argtypes = (c_void_p,) 672lib.eolian_expression_serialize.restype = c_void_p # Stringshare TO BE FREED 673 674# EAPI Eolian_Expression_Type eolian_expression_type_get(const Eolian_Expression *expr); 675lib.eolian_expression_type_get.argtypes = (c_void_p,) 676lib.eolian_expression_type_get.restype = c_int 677 678# EAPI Eolian_Binary_Operator eolian_expression_binary_operator_get(const Eolian_Expression *expr); 679lib.eolian_expression_binary_operator_get.argtypes = (c_void_p,) 680lib.eolian_expression_binary_operator_get.restype = c_int 681 682# EAPI const Eolian_Expression *eolian_expression_binary_lhs_get(const Eolian_Expression *expr); 683lib.eolian_expression_binary_lhs_get.argtypes = (c_void_p,) 684lib.eolian_expression_binary_lhs_get.restype = c_void_p 685 686# EAPI const Eolian_Expression *eolian_expression_binary_rhs_get(const Eolian_Expression *expr); 687lib.eolian_expression_binary_rhs_get.argtypes = (c_void_p,) 688lib.eolian_expression_binary_rhs_get.restype = c_void_p 689 690# EAPI Eolian_Unary_Operator eolian_expression_unary_operator_get(const Eolian_Expression *expr); 691lib.eolian_expression_unary_operator_get.argtypes = (c_void_p,) 692lib.eolian_expression_unary_operator_get.restype = c_int 693 694# EAPI const Eolian_Expression *eolian_expression_unary_expression_get(const Eolian_Expression *expr); 695lib.eolian_expression_unary_expression_get.argtypes = (c_void_p,) 696lib.eolian_expression_unary_expression_get.restype = c_void_p 697 698 699# Eolian_Constant ########################################################### 700 701# EAPI const Eolian_Documentation *eolian_constant_documentation_get(const Eolian_Constant *var); 702lib.eolian_constant_documentation_get.argtypes = (c_void_p,) 703lib.eolian_constant_documentation_get.restype = c_void_p 704 705# EAPI const Eolian_Type *eolian_constant_type_get(const Eolian_Constant *var); 706lib.eolian_constant_type_get.argtypes = (c_void_p,) 707lib.eolian_constant_type_get.restype = c_void_p 708 709# EAPI const Eolian_Expression *eolian_constant_value_get(const Eolian_Constant *var); 710lib.eolian_constant_value_get.argtypes = (c_void_p,) 711lib.eolian_constant_value_get.restype = c_void_p 712 713# EAPI Eina_Bool eolian_constant_is_extern(const Eolian_Constant *var); 714lib.eolian_constant_is_extern.argtypes = (c_void_p,) 715lib.eolian_constant_is_extern.restype = c_bool 716 717 718# Eolian_Documentation ###################################################### 719 720# EAPI Eina_Stringshare *eolian_documentation_summary_get(const Eolian_Documentation *doc); 721lib.eolian_documentation_summary_get.argtypes = (c_void_p,) 722lib.eolian_documentation_summary_get.restype = c_char_p 723 724# EAPI Eina_Stringshare *eolian_documentation_description_get(const Eolian_Documentation *doc); 725lib.eolian_documentation_description_get.argtypes = (c_void_p,) 726lib.eolian_documentation_description_get.restype = c_char_p 727 728# EAPI Eina_Stringshare *eolian_documentation_since_get(const Eolian_Documentation *doc); 729lib.eolian_documentation_since_get.argtypes = (c_void_p,) 730lib.eolian_documentation_since_get.restype = c_char_p 731 732# NOT IMPLEMENTED 733# EAPI Eina_List *eolian_documentation_string_split(const char *doc); 734# lib.eolian_documentation_string_split.argtypes = (c_char_p,) 735# lib.eolian_documentation_string_split.restype = c_void_p 736 737# # EAPI const char *eolian_documentation_tokenize(const char *doc, Eolian_Doc_Token *ret); 738lib.eolian_documentation_tokenize.argtypes = (c_char_p, c_void_p) 739lib.eolian_documentation_tokenize.restype = c_void_p # this need to be passed back as char* 740 741# EAPI void eolian_doc_token_init(Eolian_Doc_Token *tok); 742lib.eolian_doc_token_init.argtypes = (c_void_p,) 743lib.eolian_doc_token_init.restype = None 744 745# EAPI Eolian_Doc_Token_Type eolian_doc_token_type_get(const Eolian_Doc_Token *tok); 746lib.eolian_doc_token_type_get.argtypes = (c_void_p,) 747lib.eolian_doc_token_type_get.restype = c_int 748 749# EAPI char *eolian_doc_token_text_get(const Eolian_Doc_Token *tok); 750lib.eolian_doc_token_text_get.argtypes = (c_void_p,) 751lib.eolian_doc_token_text_get.restype = c_void_p # char* TO BE FREED 752 753# EAPI Eolian_Object_Type eolian_doc_token_ref_resolve(const Eolian_Doc_Token *tok, const Eolian_State *state, const Eolian_Object **data, const Eolian_Object **data2); 754lib.eolian_doc_token_ref_resolve.argtypes = (c_void_p, c_void_p, c_void_p, c_void_p) 755lib.eolian_doc_token_ref_resolve.restype = c_int 756 757 758# Eolian_Error ############################################################## 759# EAPI const char *eolian_error_message_get(const Eolian_Error *err); 760lib.eolian_error_message_get.argtypes = (c_void_p,) 761lib.eolian_error_message_get.restype = c_char_p 762 763# EAPI const Eolian_Documentation *eolian_error_documentation_get(const Eolian_Error *err); 764lib.eolian_error_documentation_get.argtypes = (c_void_p,) 765lib.eolian_error_documentation_get.restype = c_void_p 766 767# EAPI Eina_Bool eolian_error_is_extern(const Eolian_Error *err); 768lib.eolian_error_is_extern.argtypes = (c_void_p,) 769lib.eolian_error_is_extern.restype = c_bool 770 771 772# Eolian Aux ################################################################ 773# EAPI const Eolian_Implement *eolian_aux_implement_parent_get(const Eolian_Implement *impl); 774lib.eolian_aux_implement_parent_get.argtypes = (c_void_p,) 775lib.eolian_aux_implement_parent_get.restype = c_void_p 776 777# EAPI const Eolian_Documentation *eolian_aux_implement_documentation_get(const Eolian_Implement *impl, Eolian_Function_Type ftype); 778lib.eolian_aux_implement_documentation_get.argtypes = (c_void_p, c_int) 779lib.eolian_aux_implement_documentation_get.restype = c_void_p 780 781# EAPI const Eolian_Documentation *eolian_aux_implement_documentation_fallback_get(const Eolian_Implement *impl); 782lib.eolian_aux_implement_documentation_fallback_get.argtypes = (c_void_p,) 783lib.eolian_aux_implement_documentation_fallback_get.restype = c_void_p 784