321 lines
16 KiB
Cython
321 lines
16 KiB
Cython
from efl.eina cimport Eina_Iterator, Eina_Bool, Eina_Stringshare
|
|
|
|
cdef extern from "Eolian.h":
|
|
ctypedef enum Eolian_Function_Type:
|
|
EOLIAN_UNRESOLVED
|
|
EOLIAN_PROPERTY
|
|
EOLIAN_PROP_SET
|
|
EOLIAN_PROP_GET
|
|
EOLIAN_METHOD
|
|
|
|
ctypedef enum Eolian_Parameter_Dir:
|
|
EOLIAN_IN_PARAM
|
|
EOLIAN_OUT_PARAM
|
|
EOLIAN_INOUT_PARAM
|
|
|
|
ctypedef enum Eolian_Class_Type:
|
|
EOLIAN_CLASS_UNKNOWN_TYPE
|
|
EOLIAN_CLASS_REGULAR
|
|
EOLIAN_CLASS_ABSTRACT
|
|
EOLIAN_CLASS_MIXIN
|
|
EOLIAN_CLASS_INTERFACE
|
|
|
|
ctypedef enum Eolian_Object_Scope:
|
|
EOLIAN_SCOPE_PUBLIC
|
|
EOLIAN_SCOPE_PRIVATE
|
|
EOLIAN_SCOPE_PROTECTED
|
|
|
|
ctypedef enum Eolian_Type_Type:
|
|
EOLIAN_TYPE_UNKNOWN_TYPE
|
|
EOLIAN_TYPE_VOID
|
|
EOLIAN_TYPE_REGULAR
|
|
EOLIAN_TYPE_REGULAR_STRUCT
|
|
EOLIAN_TYPE_REGULAR_ENUM
|
|
EOLIAN_TYPE_COMPLEX
|
|
EOLIAN_TYPE_POINTER
|
|
EOLIAN_TYPE_FUNCTION
|
|
EOLIAN_TYPE_STRUCT
|
|
EOLIAN_TYPE_STRUCT_OPAQUE
|
|
EOLIAN_TYPE_ENUM
|
|
EOLIAN_TYPE_ALIAS
|
|
EOLIAN_TYPE_CLASS
|
|
|
|
ctypedef enum Eolian_Expression_Type:
|
|
EOLIAN_EXPR_UNKNOWN = 0
|
|
EOLIAN_EXPR_INT
|
|
EOLIAN_EXPR_UINT
|
|
EOLIAN_EXPR_LONG
|
|
EOLIAN_EXPR_ULONG
|
|
EOLIAN_EXPR_LLONG
|
|
EOLIAN_EXPR_ULLONG
|
|
EOLIAN_EXPR_FLOAT
|
|
EOLIAN_EXPR_DOUBLE
|
|
EOLIAN_EXPR_STRING
|
|
EOLIAN_EXPR_CHAR
|
|
EOLIAN_EXPR_NULL
|
|
EOLIAN_EXPR_BOOL
|
|
EOLIAN_EXPR_NAME
|
|
EOLIAN_EXPR_ENUM
|
|
EOLIAN_EXPR_UNARY
|
|
EOLIAN_EXPR_BINARY
|
|
|
|
ctypedef enum Eolian_Expression_Mask:
|
|
EOLIAN_MASK_SINT
|
|
EOLIAN_MASK_UINT
|
|
EOLIAN_MASK_INT
|
|
EOLIAN_MASK_FLOAT
|
|
EOLIAN_MASK_BOOL
|
|
EOLIAN_MASK_STRING
|
|
EOLIAN_MASK_CHAR
|
|
EOLIAN_MASK_NULL
|
|
EOLIAN_MASK_NUMBER
|
|
EOLIAN_MASK_ALL
|
|
|
|
ctypedef enum Eolian_Variable_Type:
|
|
EOLIAN_VAR_UNKNOWN = 0
|
|
EOLIAN_VAR_CONSTANT
|
|
EOLIAN_VAR_GLOBAL
|
|
|
|
ctypedef enum Eolian_Binary_Operator:
|
|
EOLIAN_BINOP_INVALID = -1
|
|
|
|
EOLIAN_BINOP_ADD # + int float
|
|
EOLIAN_BINOP_SUB # - int float
|
|
EOLIAN_BINOP_MUL # * int float
|
|
EOLIAN_BINOP_DIV # / int float
|
|
EOLIAN_BINOP_MOD # % int
|
|
|
|
EOLIAN_BINOP_EQ # == all types
|
|
EOLIAN_BINOP_NQ # != all types
|
|
EOLIAN_BINOP_GT # > int float
|
|
EOLIAN_BINOP_LT # < int float
|
|
EOLIAN_BINOP_GE # >= int float
|
|
EOLIAN_BINOP_LE # <= int float
|
|
|
|
EOLIAN_BINOP_AND # && all types
|
|
EOLIAN_BINOP_OR # || all types
|
|
|
|
EOLIAN_BINOP_BAND # & int
|
|
EOLIAN_BINOP_BOR # | int
|
|
EOLIAN_BINOP_BXOR # ^ int
|
|
EOLIAN_BINOP_LSH # << int
|
|
EOLIAN_BINOP_RSH # >> int
|
|
|
|
ctypedef enum Eolian_Unary_Operator:
|
|
EOLIAN_UNOP_INVALID = -1
|
|
|
|
EOLIAN_UNOP_UNM # - sint
|
|
EOLIAN_UNOP_UNP # + sint
|
|
|
|
EOLIAN_UNOP_NOT # ! int, float bool
|
|
EOLIAN_UNOP_BNOT # ~ int
|
|
|
|
|
|
#Class type used to extract information on classes
|
|
ctypedef struct _Eolian_Class
|
|
ctypedef _Eolian_Class Eolian_Class
|
|
|
|
# Function Id used to extract information on class functions
|
|
ctypedef struct _Eolian_Function
|
|
ctypedef _Eolian_Function Eolian_Function
|
|
|
|
# Parameter/return type.
|
|
ctypedef struct _Eolian_Type
|
|
ctypedef _Eolian_Type Eolian_Type
|
|
|
|
# Class function parameter information
|
|
ctypedef struct _Eolian_Function_Parameter
|
|
ctypedef _Eolian_Function_Parameter Eolian_Function_Parameter
|
|
|
|
# Class implement information
|
|
ctypedef struct _Eolian_Implement
|
|
ctypedef _Eolian_Implement Eolian_Implement
|
|
|
|
# Class constructor information
|
|
ctypedef struct _Eolian_Constructor
|
|
ctypedef _Eolian_Constructor Eolian_Constructor
|
|
|
|
# Event information
|
|
ctypedef struct _Eolian_Event
|
|
ctypedef _Eolian_Event Eolian_Event
|
|
|
|
# Expression information
|
|
ctypedef struct _Eolian_Expression
|
|
ctypedef _Eolian_Expression Eolian_Expression
|
|
|
|
# Variable information
|
|
ctypedef struct _Eolian_Variable
|
|
ctypedef _Eolian_Variable Eolian_Variable
|
|
|
|
# Struct field information
|
|
ctypedef struct _Eolian_Struct_Type_Field
|
|
ctypedef _Eolian_Struct_Type_Field Eolian_Struct_Type_Field
|
|
|
|
# Enum field information
|
|
ctypedef struct _Eolian_Enum_Type_Field
|
|
ctypedef _Eolian_Enum_Type_Field Eolian_Enum_Type_Field
|
|
|
|
ctypedef union Eolian_Value_Union:
|
|
char c
|
|
Eina_Bool b
|
|
const char *s
|
|
signed int i
|
|
unsigned int u
|
|
signed long l
|
|
unsigned long ul
|
|
signed long long ll
|
|
unsigned long long ull
|
|
float f
|
|
double d
|
|
|
|
cdef struct _Eolian_Value:
|
|
Eolian_Expression_Type type
|
|
Eolian_Value_Union value
|
|
ctypedef _Eolian_Value Eolian_Value
|
|
|
|
|
|
#define EOLIAN_LEGACY "legacy"
|
|
#define EOLIAN_LEGACY_GET "legacy_get"
|
|
#define EOLIAN_LEGACY_SET "legacy_set"
|
|
#define EOLIAN_COMMENT "comment"
|
|
#define EOLIAN_COMMENT_SET "comment_set"
|
|
#define EOLIAN_COMMENT_GET "comment_get"
|
|
|
|
|
|
Eina_Bool eolian_eo_file_parse(const char *filename)
|
|
Eina_Bool eolian_eot_file_parse(const char *filepath)
|
|
int eolian_init()
|
|
int eolian_shutdown()
|
|
Eina_Bool eolian_directory_scan(const char *dir)
|
|
Eina_Bool eolian_system_directory_scan()
|
|
Eina_Bool eolian_all_eo_files_parse()
|
|
Eina_Bool eolian_all_eot_files_parse()
|
|
Eina_Bool eolian_database_validate()
|
|
Eina_Bool eolian_show_class(const Eolian_Class *klass)
|
|
Eina_Bool eolian_show_typedef(const char *alias)
|
|
Eina_Bool eolian_show_struct(const char *name)
|
|
Eina_Bool eolian_show_enum(const char *name)
|
|
Eina_Bool eolian_show_global(const char *name)
|
|
Eina_Bool eolian_show_constant(const char *name)
|
|
void eolian_show_all()
|
|
const Eolian_Class *eolian_class_get_by_name(const char *class_name)
|
|
const Eolian_Class *eolian_class_get_by_file(const char *file_name)
|
|
Eina_Stringshare *eolian_class_file_get(const Eolian_Class *klass)
|
|
Eina_Stringshare *eolian_class_full_name_get(const Eolian_Class *klass)
|
|
Eina_Stringshare *eolian_class_name_get(const Eolian_Class *klass)
|
|
Eina_Iterator *eolian_class_namespaces_get(const Eolian_Class *klass)
|
|
Eolian_Class_Type eolian_class_type_get(const Eolian_Class *klass)
|
|
Eina_Iterator *eolian_all_classes_get()
|
|
Eina_Stringshare *eolian_class_description_get(const Eolian_Class *klass)
|
|
Eina_Stringshare *eolian_class_legacy_prefix_get(const Eolian_Class *klass)
|
|
Eina_Stringshare* eolian_class_eo_prefix_get(const Eolian_Class *klass)
|
|
Eina_Stringshare *eolian_class_data_type_get(const Eolian_Class *klass)
|
|
Eina_Iterator *eolian_class_inherits_get(const Eolian_Class *klass)
|
|
Eina_Iterator *eolian_class_functions_get(const Eolian_Class *klass, Eolian_Function_Type func_type)
|
|
Eolian_Function_Type eolian_function_type_get(const Eolian_Function *function_id)
|
|
Eolian_Object_Scope eolian_function_scope_get(const Eolian_Function *function_id)
|
|
Eina_Stringshare *eolian_function_name_get(const Eolian_Function *function_id)
|
|
Eina_Stringshare *eolian_function_full_c_name_get(const Eolian_Function *function_id, const char *prefix)
|
|
const Eolian_Function *eolian_class_function_get_by_name(const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type)
|
|
Eina_Stringshare *eolian_function_legacy_get(const Eolian_Function *function_id, Eolian_Function_Type f_type)
|
|
Eina_Stringshare *eolian_function_description_get(const Eolian_Function *function_id, Eolian_Function_Type f_type)
|
|
Eina_Bool eolian_function_is_virtual_pure(const Eolian_Function *function_id, Eolian_Function_Type f_type)
|
|
Eina_Bool eolian_function_is_auto(const Eolian_Function *function_id, Eolian_Function_Type f_type)
|
|
Eina_Bool eolian_function_is_empty(const Eolian_Function *function_id, Eolian_Function_Type f_type)
|
|
Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id, Eolian_Function_Type ftype)
|
|
Eina_Bool eolian_function_is_class(const Eolian_Function *function_id)
|
|
const Eolian_Function_Parameter *eolian_function_parameter_get_by_name(const Eolian_Function *function_id, const char *param_name)
|
|
Eina_Iterator *eolian_function_parameters_get(const Eolian_Function *function_id)
|
|
Eina_Iterator *eolian_property_keys_get(const Eolian_Function *foo_id)
|
|
Eina_Iterator *eolian_property_values_get(const Eolian_Function *foo_id)
|
|
Eolian_Parameter_Dir eolian_parameter_direction_get(const Eolian_Function_Parameter *param)
|
|
const Eolian_Type *eolian_parameter_type_get(const Eolian_Function_Parameter *param)
|
|
const Eolian_Expression *eolian_parameter_default_value_get(const Eolian_Function_Parameter *param)
|
|
Eina_Stringshare *eolian_parameter_name_get(const Eolian_Function_Parameter *param)
|
|
Eina_Stringshare *eolian_parameter_description_get(const Eolian_Function_Parameter *param)
|
|
Eina_Bool eolian_parameter_const_attribute_get(const Eolian_Function_Parameter *param_desc, Eina_Bool is_get)
|
|
Eina_Bool eolian_parameter_is_nonull(const Eolian_Function_Parameter *param_desc)
|
|
const Eolian_Type *eolian_function_return_type_get(const Eolian_Function *function_id, Eolian_Function_Type ftype)
|
|
const Eolian_Expression *eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype)
|
|
Eina_Stringshare *eolian_function_return_comment_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype)
|
|
Eina_Bool eolian_function_return_is_warn_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype)
|
|
Eina_Bool eolian_function_object_is_const(const Eolian_Function *function_id)
|
|
Eina_Stringshare *eolian_implement_full_name_get(const Eolian_Implement *impl)
|
|
const Eolian_Class *eolian_implement_class_get(const Eolian_Implement *impl)
|
|
const Eolian_Function *eolian_implement_function_get(const Eolian_Implement *impl, Eolian_Function_Type *func_type)
|
|
Eina_Bool eolian_implement_is_auto(const Eolian_Implement *impl)
|
|
Eina_Bool eolian_implement_is_empty(const Eolian_Implement *impl)
|
|
Eina_Bool eolian_implement_is_virtual(const Eolian_Implement *impl)
|
|
Eina_Bool eolian_implement_is_prop_get(const Eolian_Implement *impl)
|
|
Eina_Bool eolian_implement_is_prop_set(const Eolian_Implement *impl)
|
|
Eina_Iterator *eolian_class_implements_get(const Eolian_Class *klass)
|
|
Eina_Stringshare *eolian_constructor_full_name_get(const Eolian_Constructor *ctor)
|
|
const Eolian_Class *eolian_constructor_class_get(const Eolian_Constructor *ctor)
|
|
const Eolian_Function *eolian_constructor_function_get(const Eolian_Constructor *ctor)
|
|
Eina_Iterator *eolian_class_constructors_get(const Eolian_Class *klass)
|
|
Eina_Iterator *eolian_class_events_get(const Eolian_Class *klass)
|
|
Eina_Stringshare *eolian_event_name_get(const Eolian_Event *event)
|
|
const Eolian_Type *eolian_event_type_get(const Eolian_Event *event)
|
|
Eina_Stringshare *eolian_event_description_get(const Eolian_Event *event)
|
|
Eolian_Object_Scope eolian_event_scope_get(const Eolian_Event *event)
|
|
Eina_Bool eolian_class_ctor_enable_get(const Eolian_Class *klass)
|
|
Eina_Bool eolian_class_dtor_enable_get(const Eolian_Class *klass)
|
|
const Eolian_Type *eolian_type_alias_get_by_name(const char *name)
|
|
const Eolian_Type *eolian_type_struct_get_by_name(const char *name)
|
|
const Eolian_Type *eolian_type_enum_get_by_name(const char *name)
|
|
Eina_Iterator *eolian_type_aliases_get_by_file(const char *fname)
|
|
Eina_Iterator *eolian_type_structs_get_by_file(const char *fname)
|
|
Eina_Iterator *eolian_type_enums_get_by_file(const char *fname)
|
|
Eolian_Type_Type eolian_type_type_get(const Eolian_Type *tp)
|
|
Eina_Iterator *eolian_type_arguments_get(const Eolian_Type *tp)
|
|
Eina_Iterator *eolian_type_subtypes_get(const Eolian_Type *tp)
|
|
Eina_Iterator *eolian_type_struct_fields_get(const Eolian_Type *tp)
|
|
const Eolian_Struct_Type_Field *eolian_type_struct_field_get(const Eolian_Type *tp, const char *field)
|
|
Eina_Stringshare *eolian_type_struct_field_name_get(const Eolian_Struct_Type_Field *fl)
|
|
Eina_Stringshare *eolian_type_struct_field_description_get(const Eolian_Struct_Type_Field *fl)
|
|
const Eolian_Type *eolian_type_struct_field_type_get(const Eolian_Struct_Type_Field *fl)
|
|
Eina_Iterator *eolian_type_enum_fields_get(const Eolian_Type *tp)
|
|
const Eolian_Enum_Type_Field *eolian_type_enum_field_get(const Eolian_Type *tp, const char *field)
|
|
Eina_Stringshare *eolian_type_enum_field_name_get(const Eolian_Enum_Type_Field *fl)
|
|
Eina_Stringshare *eolian_type_enum_field_description_get(const Eolian_Enum_Type_Field *fl)
|
|
const Eolian_Expression *eolian_type_enum_field_value_get(const Eolian_Enum_Type_Field *fl)
|
|
Eina_Stringshare *eolian_type_enum_legacy_prefix_get(const Eolian_Type *tp)
|
|
Eina_Stringshare *eolian_type_description_get(const Eolian_Type *tp)
|
|
Eina_Stringshare *eolian_type_file_get(const Eolian_Type *tp)
|
|
const Eolian_Type *eolian_type_return_type_get(const Eolian_Type *tp)
|
|
const Eolian_Type *eolian_type_base_type_get(const Eolian_Type *tp)
|
|
const Eolian_Class *eolian_type_class_get(const Eolian_Type *tp)
|
|
Eina_Bool eolian_type_is_own(const Eolian_Type *tp)
|
|
Eina_Bool eolian_type_is_const(const Eolian_Type *tp)
|
|
Eina_Bool eolian_type_is_extern(const Eolian_Type *tp)
|
|
Eina_Stringshare *eolian_type_c_type_named_get(const Eolian_Type *tp, const char *name)
|
|
Eina_Stringshare *eolian_type_c_type_get(const Eolian_Type *tp)
|
|
Eina_Stringshare *eolian_type_name_get(const Eolian_Type *tp)
|
|
Eina_Stringshare *eolian_type_full_name_get(const Eolian_Type *tp)
|
|
Eina_Iterator *eolian_type_namespaces_get(const Eolian_Type *tp)
|
|
Eina_Stringshare *eolian_type_free_func_get(const Eolian_Type *tp)
|
|
Eolian_Value eolian_expression_eval(const Eolian_Expression *expr, Eolian_Expression_Mask m)
|
|
Eolian_Value eolian_expression_eval_type(const Eolian_Expression *expr, const Eolian_Type *type)
|
|
Eina_Stringshare *eolian_expression_value_to_literal(const Eolian_Value *v)
|
|
Eina_Stringshare *eolian_expression_serialize(const Eolian_Expression *expr)
|
|
Eolian_Expression_Type eolian_expression_type_get(const Eolian_Expression *expr)
|
|
Eolian_Binary_Operator eolian_expression_binary_operator_get(const Eolian_Expression *expr)
|
|
const Eolian_Expression *eolian_expression_binary_lhs_get(const Eolian_Expression *expr)
|
|
const Eolian_Expression *eolian_expression_binary_rhs_get(const Eolian_Expression *expr)
|
|
Eolian_Unary_Operator eolian_expression_unary_operator_get(const Eolian_Expression *expr)
|
|
const Eolian_Expression *eolian_expression_unary_expression_get(const Eolian_Expression *expr)
|
|
Eolian_Value eolian_expression_value_get(const Eolian_Expression *expr)
|
|
const Eolian_Variable *eolian_variable_global_get_by_name(const char *name)
|
|
const Eolian_Variable *eolian_variable_constant_get_by_name(const char *name)
|
|
Eina_Iterator *eolian_variable_globals_get_by_file(const char *fname)
|
|
Eina_Iterator *eolian_variable_constants_get_by_file(const char *fname)
|
|
Eolian_Variable_Type eolian_variable_type_get(const Eolian_Variable *var)
|
|
Eina_Stringshare *eolian_variable_description_get(const Eolian_Variable *var)
|
|
Eina_Stringshare *eolian_variable_file_get(const Eolian_Variable *var)
|
|
const Eolian_Type *eolian_variable_base_type_get(const Eolian_Variable *var)
|
|
const Eolian_Expression *eolian_variable_value_get(const Eolian_Variable *var)
|
|
Eina_Stringshare *eolian_variable_name_get(const Eolian_Variable *var)
|
|
Eina_Stringshare *eolian_variable_full_name_get(const Eolian_Variable *var)
|
|
Eina_Iterator *eolian_variable_namespaces_get(const Eolian_Variable *var)
|
|
Eina_Bool eolian_variable_is_extern(const Eolian_Variable *var)
|