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