Eolian

Data Structures

union  Eolian_Value_Union
struct  _Eolian_Value
struct  _Eolian_Doc_Token

Macros

#define EOLIAN_FILE_FORMAT_VERSION   1
#define EOLIAN_CAST(type, expr)
#define EOLIAN_OBJECT(expr)
#define EOLIAN_UNIT(expr)

Typedefs

typedef struct _Eolian_State Eolian_State
typedef struct _Eolian_Object Eolian_Object
typedef struct _Eolian_Class Eolian_Class
typedef struct _Eolian_Function Eolian_Function
typedef struct _Eolian_Part Eolian_Part
typedef struct _Eolian_Type Eolian_Type
typedef struct _Eolian_Typedecl Eolian_Typedecl
typedef struct _Eolian_Function_Parameter Eolian_Function_Parameter
typedef struct _Eolian_Implement Eolian_Implement
typedef struct _Eolian_Constructor Eolian_Constructor
typedef struct _Eolian_Event Eolian_Event
typedef struct _Eolian_Expression Eolian_Expression
typedef struct _Eolian_Constant Eolian_Constant
typedef struct _Eolian_Error Eolian_Error
typedef struct _Eolian_Struct_Type_Field Eolian_Struct_Type_Field
typedef struct _Eolian_Enum_Type_Field Eolian_Enum_Type_Field
typedef struct _Eolian_Documentation Eolian_Documentation
typedef struct _Eolian_Unit Eolian_Unit
typedef void(* Eolian_Panic_Cb) (const Eolian_State *state, Eina_Stringshare *msg)
typedef void(* Eolian_Error_Cb) (const Eolian_Object *obj, const char *msg, void *data)
typedef struct _Eolian_Value Eolian_Value
typedef struct _Eolian_Doc_Token Eolian_Doc_Token

Enumerations

enum  Eolian_Object_Type {
  EOLIAN_OBJECT_UNKNOWN = 0 ,
  EOLIAN_OBJECT_CLASS ,
  EOLIAN_OBJECT_TYPEDECL ,
  EOLIAN_OBJECT_STRUCT_FIELD ,
  EOLIAN_OBJECT_ENUM_FIELD ,
  EOLIAN_OBJECT_TYPE ,
  EOLIAN_OBJECT_CONSTANT ,
  EOLIAN_OBJECT_EXPRESSION ,
  EOLIAN_OBJECT_FUNCTION ,
  EOLIAN_OBJECT_FUNCTION_PARAMETER ,
  EOLIAN_OBJECT_EVENT ,
  EOLIAN_OBJECT_PART ,
  EOLIAN_OBJECT_IMPLEMENT ,
  EOLIAN_OBJECT_CONSTRUCTOR ,
  EOLIAN_OBJECT_DOCUMENTATION ,
  EOLIAN_OBJECT_ERROR
}
enum  Eolian_Function_Type {
  EOLIAN_UNRESOLVED = 0 ,
  EOLIAN_PROPERTY ,
  EOLIAN_PROP_SET ,
  EOLIAN_PROP_GET ,
  EOLIAN_METHOD ,
  EOLIAN_FUNCTION_POINTER
}
enum  Eolian_Parameter_Direction {
  EOLIAN_PARAMETER_UNKNOWN = 0 ,
  EOLIAN_PARAMETER_IN ,
  EOLIAN_PARAMETER_OUT ,
  EOLIAN_PARAMETER_INOUT
}
enum  Eolian_Class_Type {
  EOLIAN_CLASS_UNKNOWN_TYPE = 0 ,
  EOLIAN_CLASS_REGULAR ,
  EOLIAN_CLASS_ABSTRACT ,
  EOLIAN_CLASS_MIXIN ,
  EOLIAN_CLASS_INTERFACE
}
enum  Eolian_Object_Scope {
  EOLIAN_SCOPE_UNKNOWN = 0 ,
  EOLIAN_SCOPE_PUBLIC ,
  EOLIAN_SCOPE_PRIVATE ,
  EOLIAN_SCOPE_PROTECTED
}
enum  Eolian_Typedecl_Type {
  EOLIAN_TYPEDECL_UNKNOWN = 0 ,
  EOLIAN_TYPEDECL_STRUCT ,
  EOLIAN_TYPEDECL_STRUCT_OPAQUE ,
  EOLIAN_TYPEDECL_ENUM ,
  EOLIAN_TYPEDECL_ALIAS ,
  EOLIAN_TYPEDECL_FUNCTION_POINTER
}
enum  Eolian_Type_Type {
  EOLIAN_TYPE_UNKNOWN_TYPE = 0 ,
  EOLIAN_TYPE_VOID ,
  EOLIAN_TYPE_REGULAR ,
  EOLIAN_TYPE_CLASS ,
  EOLIAN_TYPE_ERROR ,
  EOLIAN_TYPE_UNDEFINED
}
enum  Eolian_Type_Builtin_Type {
  EOLIAN_TYPE_BUILTIN_INVALID = 0 ,
  EOLIAN_TYPE_BUILTIN_BYTE ,
  EOLIAN_TYPE_BUILTIN_UBYTE ,
  EOLIAN_TYPE_BUILTIN_CHAR ,
  EOLIAN_TYPE_BUILTIN_SHORT ,
  EOLIAN_TYPE_BUILTIN_USHORT ,
  EOLIAN_TYPE_BUILTIN_INT ,
  EOLIAN_TYPE_BUILTIN_UINT ,
  EOLIAN_TYPE_BUILTIN_LONG ,
  EOLIAN_TYPE_BUILTIN_ULONG ,
  EOLIAN_TYPE_BUILTIN_LLONG ,
  EOLIAN_TYPE_BUILTIN_ULLONG ,
  EOLIAN_TYPE_BUILTIN_INT8 ,
  EOLIAN_TYPE_BUILTIN_UINT8 ,
  EOLIAN_TYPE_BUILTIN_INT16 ,
  EOLIAN_TYPE_BUILTIN_UINT16 ,
  EOLIAN_TYPE_BUILTIN_INT32 ,
  EOLIAN_TYPE_BUILTIN_UINT32 ,
  EOLIAN_TYPE_BUILTIN_INT64 ,
  EOLIAN_TYPE_BUILTIN_UINT64 ,
  EOLIAN_TYPE_BUILTIN_INT128 ,
  EOLIAN_TYPE_BUILTIN_UINT128 ,
  EOLIAN_TYPE_BUILTIN_SIZE ,
  EOLIAN_TYPE_BUILTIN_SSIZE ,
  EOLIAN_TYPE_BUILTIN_INTPTR ,
  EOLIAN_TYPE_BUILTIN_UINTPTR ,
  EOLIAN_TYPE_BUILTIN_PTRDIFF ,
  EOLIAN_TYPE_BUILTIN_TIME ,
  EOLIAN_TYPE_BUILTIN_FLOAT ,
  EOLIAN_TYPE_BUILTIN_DOUBLE ,
  EOLIAN_TYPE_BUILTIN_BOOL ,
  EOLIAN_TYPE_BUILTIN_SLICE ,
  EOLIAN_TYPE_BUILTIN_RW_SLICE ,
  EOLIAN_TYPE_BUILTIN_VOID ,
  EOLIAN_TYPE_BUILTIN_ACCESSOR ,
  EOLIAN_TYPE_BUILTIN_ARRAY ,
  EOLIAN_TYPE_BUILTIN_FUTURE ,
  EOLIAN_TYPE_BUILTIN_ITERATOR ,
  EOLIAN_TYPE_BUILTIN_LIST ,
  EOLIAN_TYPE_BUILTIN_ANY_VALUE ,
  EOLIAN_TYPE_BUILTIN_ANY_VALUE_REF ,
  EOLIAN_TYPE_BUILTIN_BINBUF ,
  EOLIAN_TYPE_BUILTIN_EVENT ,
  EOLIAN_TYPE_BUILTIN_MSTRING ,
  EOLIAN_TYPE_BUILTIN_STRING ,
  EOLIAN_TYPE_BUILTIN_STRINGSHARE ,
  EOLIAN_TYPE_BUILTIN_STRBUF ,
  EOLIAN_TYPE_BUILTIN_HASH ,
  EOLIAN_TYPE_BUILTIN_VOID_PTR
}
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_UNARY ,
  EOLIAN_EXPR_BINARY
}
enum  Eolian_Expression_Mask {
  EOLIAN_MASK_SINT = 1 << 0 ,
  EOLIAN_MASK_UINT = 1 << 1 ,
  EOLIAN_MASK_INT = EOLIAN_MASK_SINT | EOLIAN_MASK_UINT ,
  EOLIAN_MASK_FLOAT = 1 << 2 ,
  EOLIAN_MASK_BOOL = 1 << 3 ,
  EOLIAN_MASK_STRING = 1 << 4 ,
  EOLIAN_MASK_CHAR = 1 << 5 ,
  EOLIAN_MASK_NULL = 1 << 6 ,
  EOLIAN_MASK_SIGNED = EOLIAN_MASK_SINT | EOLIAN_MASK_FLOAT ,
  EOLIAN_MASK_NUMBER = EOLIAN_MASK_INT | EOLIAN_MASK_FLOAT ,
  EOLIAN_MASK_ALL
}
enum  Eolian_Binary_Operator {
  EOLIAN_BINOP_INVALID = 0 ,
  EOLIAN_BINOP_ADD ,
  EOLIAN_BINOP_SUB ,
  EOLIAN_BINOP_MUL ,
  EOLIAN_BINOP_DIV ,
  EOLIAN_BINOP_MOD ,
  EOLIAN_BINOP_EQ ,
  EOLIAN_BINOP_NQ ,
  EOLIAN_BINOP_GT ,
  EOLIAN_BINOP_LT ,
  EOLIAN_BINOP_GE ,
  EOLIAN_BINOP_LE ,
  EOLIAN_BINOP_AND ,
  EOLIAN_BINOP_OR ,
  EOLIAN_BINOP_BAND ,
  EOLIAN_BINOP_BOR ,
  EOLIAN_BINOP_BXOR ,
  EOLIAN_BINOP_LSH ,
  EOLIAN_BINOP_RSH
}
enum  Eolian_Unary_Operator {
  EOLIAN_UNOP_INVALID = 0 ,
  EOLIAN_UNOP_UNM ,
  EOLIAN_UNOP_UNP ,
  EOLIAN_UNOP_NOT ,
  EOLIAN_UNOP_BNOT
}
enum  Eolian_Doc_Token_Type {
  EOLIAN_DOC_TOKEN_UNKNOWN = 0 ,
  EOLIAN_DOC_TOKEN_TEXT ,
  EOLIAN_DOC_TOKEN_REF ,
  EOLIAN_DOC_TOKEN_MARK_NOTE ,
  EOLIAN_DOC_TOKEN_MARK_WARNING ,
  EOLIAN_DOC_TOKEN_MARK_REMARK ,
  EOLIAN_DOC_TOKEN_MARK_TODO ,
  EOLIAN_DOC_TOKEN_MARKUP_MONOSPACE
}

Functions

EOLIAN_API int eolian_init (void)
EOLIAN_API int eolian_shutdown (void)
EOLIAN_API unsigned short eolian_file_format_version_get (void)
EOLIAN_API Eolian_State * eolian_state_new (void)
EOLIAN_API void eolian_state_free (Eolian_State *state)
EOLIAN_API Eolian_Panic_Cb eolian_state_panic_cb_set (Eolian_State *state, Eolian_Panic_Cb cb)
EOLIAN_API Eolian_Error_Cb eolian_state_error_cb_set (Eolian_State *state, Eolian_Error_Cb cb)
EOLIAN_API void * eolian_state_error_data_set (Eolian_State *state, void *data)
EOLIAN_API Eolian_Object_Type eolian_object_type_get (const Eolian_Object *obj)
EOLIAN_API const Eolian_Unit * eolian_object_unit_get (const Eolian_Object *obj)
EOLIAN_API const char * eolian_object_file_get (const Eolian_Object *obj)
EOLIAN_API int eolian_object_line_get (const Eolian_Object *obj)
EOLIAN_API int eolian_object_column_get (const Eolian_Object *obj)
EOLIAN_API const char * eolian_object_name_get (const Eolian_Object *obj)
EOLIAN_API const char * eolian_object_c_name_get (const Eolian_Object *obj)
EOLIAN_API const char * eolian_object_short_name_get (const Eolian_Object *obj)
EOLIAN_API Eina_Iteratoreolian_object_namespaces_get (const Eolian_Object *obj)
EOLIAN_API Eina_Bool eolian_object_is_beta (const Eolian_Object *obj)
EOLIAN_API Eina_Bool eolian_state_directory_add (Eolian_State *state, const char *dir)
EOLIAN_API Eina_Bool eolian_state_system_directory_add (Eolian_State *state)
EOLIAN_API Eina_Iteratoreolian_state_eo_file_paths_get (const Eolian_State *state)
EOLIAN_API Eina_Iteratoreolian_state_eot_file_paths_get (const Eolian_State *state)
EOLIAN_API Eina_Iteratoreolian_state_eo_files_get (const Eolian_State *state)
EOLIAN_API Eina_Iteratoreolian_state_eot_files_get (const Eolian_State *state)
EOLIAN_API const Eolian_Unit * eolian_state_file_parse (Eolian_State *state, const char *filename)
EOLIAN_API const Eolian_Unit * eolian_state_file_path_parse (Eolian_State *state, const char *filepath)
EOLIAN_API Eina_Bool eolian_state_all_eo_files_parse (Eolian_State *state)
EOLIAN_API Eina_Bool eolian_state_all_eot_files_parse (Eolian_State *state)
EOLIAN_API Eina_Bool eolian_state_check (const Eolian_State *state)
EOLIAN_API const Eolian_Unit * eolian_state_unit_by_file_get (const Eolian_State *state, const char *file_name)
EOLIAN_API Eina_Iteratoreolian_state_units_get (const Eolian_State *state)
EOLIAN_API const Eolian_State * eolian_unit_state_get (const Eolian_Unit *unit)
EOLIAN_API Eina_Iteratoreolian_unit_children_get (const Eolian_Unit *unit)
EOLIAN_API const char * eolian_unit_file_get (const Eolian_Unit *unit)
EOLIAN_API const char * eolian_unit_file_path_get (const Eolian_Unit *unit)
EOLIAN_API unsigned short eolian_unit_version_get (const Eolian_Unit *unit)
EOLIAN_API const Eolian_Object * eolian_unit_object_by_name_get (const Eolian_Unit *unit, const char *name)
EOLIAN_API Eina_Iteratoreolian_unit_objects_get (const Eolian_Unit *unit)
EOLIAN_API const Eolian_Class * eolian_unit_class_by_name_get (const Eolian_Unit *unit, const char *class_name)
EOLIAN_API Eina_Iteratoreolian_unit_classes_get (const Eolian_Unit *unit)
EOLIAN_API const Eolian_Constant * eolian_unit_constant_by_name_get (const Eolian_Unit *unit, const char *name)
EOLIAN_API const Eolian_Error * eolian_unit_error_by_name_get (const Eolian_Unit *unit, const char *name)
EOLIAN_API Eina_Iteratoreolian_unit_constants_get (const Eolian_Unit *unit)
EOLIAN_API Eina_Iteratoreolian_unit_errors_get (const Eolian_Unit *unit)
EOLIAN_API const Eolian_Typedecl * eolian_unit_alias_by_name_get (const Eolian_Unit *unit, const char *name)
EOLIAN_API const Eolian_Typedecl * eolian_unit_struct_by_name_get (const Eolian_Unit *unit, const char *name)
EOLIAN_API const Eolian_Typedecl * eolian_unit_enum_by_name_get (const Eolian_Unit *unit, const char *name)
EOLIAN_API Eina_Iteratoreolian_unit_aliases_get (const Eolian_Unit *unit)
EOLIAN_API Eina_Iteratoreolian_unit_structs_get (const Eolian_Unit *unit)
EOLIAN_API Eina_Iteratoreolian_unit_enums_get (const Eolian_Unit *unit)
static const Eolian_Object * eolian_state_object_by_name_get (const Eolian_State *state, const char *name)
EOLIAN_API Eina_Iteratoreolian_state_objects_by_file_get (const Eolian_State *state, const char *file_name)
static Eina_Iteratoreolian_state_objects_get (const Eolian_State *state)
static const Eolian_Class * eolian_state_class_by_name_get (const Eolian_State *state, const char *class_name)
EOLIAN_API const Eolian_Class * eolian_state_class_by_file_get (const Eolian_State *state, const char *file_name)
static Eina_Iteratoreolian_state_classes_get (const Eolian_State *state)
static const Eolian_Constant * eolian_state_constant_by_name_get (const Eolian_State *state, const char *name)
static const Eolian_Error * eolian_state_error_by_name_get (const Eolian_State *state, const char *name)
EOLIAN_API Eina_Iteratoreolian_state_constants_by_file_get (const Eolian_State *state, const char *file_name)
EOLIAN_API Eina_Iteratoreolian_state_errors_by_file_get (const Eolian_State *state, const char *file_name)
static Eina_Iteratoreolian_state_constants_get (const Eolian_State *state)
static Eina_Iteratoreolian_state_errors_get (const Eolian_State *state)
static const Eolian_Typedecl * eolian_state_alias_by_name_get (const Eolian_State *state, const char *name)
static const Eolian_Typedecl * eolian_state_struct_by_name_get (const Eolian_State *state, const char *name)
static const Eolian_Typedecl * eolian_state_enum_by_name_get (const Eolian_State *state, const char *name)
EOLIAN_API Eina_Iteratoreolian_state_aliases_by_file_get (const Eolian_State *state, const char *file_name)
EOLIAN_API Eina_Iteratoreolian_state_structs_by_file_get (const Eolian_State *state, const char *file_name)
EOLIAN_API Eina_Iteratoreolian_state_enums_by_file_get (const Eolian_State *state, const char *file_name)
static Eina_Iteratoreolian_state_aliases_get (const Eolian_State *state)
static Eina_Iteratoreolian_state_structs_get (const Eolian_State *state)
static Eina_Iteratoreolian_state_enums_get (const Eolian_State *state)
static const char * eolian_class_name_get (const Eolian_Class *klass)
static const char * eolian_class_c_name_get (const Eolian_Class *klass)
static const char * eolian_class_short_name_get (const Eolian_Class *klass)
static Eina_Iteratoreolian_class_namespaces_get (const Eolian_Class *klass)
EOLIAN_API Eolian_Class_Type eolian_class_type_get (const Eolian_Class *klass)
EOLIAN_API const Eolian_Documentation * eolian_class_documentation_get (const Eolian_Class *klass)
EOLIAN_API const char * eolian_class_c_prefix_get (const Eolian_Class *klass)
EOLIAN_API const char * eolian_class_event_c_prefix_get (const Eolian_Class *klass)
EOLIAN_API const char * eolian_class_data_type_get (const Eolian_Class *klass)
EOLIAN_API const Eolian_Class * eolian_class_parent_get (const Eolian_Class *klass)
EOLIAN_API Eina_Iteratoreolian_class_requires_get (const Eolian_Class *klass)
EOLIAN_API Eina_Iteratoreolian_class_extensions_get (const Eolian_Class *klass)
EOLIAN_API Eina_Iteratoreolian_class_functions_get (const Eolian_Class *klass, Eolian_Function_Type func_type)
EOLIAN_API Eolian_Function_Type eolian_function_type_get (const Eolian_Function *function_id)
EOLIAN_API Eolian_Object_Scope eolian_function_scope_get (const Eolian_Function *function_id, Eolian_Function_Type ftype)
static const char * eolian_function_name_get (const Eolian_Function *fid)
EOLIAN_API Eina_Stringshareeolian_function_full_c_name_get (const Eolian_Function *function_id, Eolian_Function_Type ftype)
EOLIAN_API const Eolian_Function * eolian_class_function_by_name_get (const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type)
EOLIAN_API const Eolian_Implement * eolian_function_implement_get (const Eolian_Function *function_id)
EOLIAN_API Eina_Bool eolian_function_is_static (const Eolian_Function *function_id)
static Eina_Bool eolian_function_is_beta (const Eolian_Function *function_id)
EOLIAN_API Eina_Bool eolian_function_is_constructor (const Eolian_Function *function_id, const Eolian_Class *klass)
EOLIAN_API Eina_Iteratoreolian_function_parameters_get (const Eolian_Function *function_id)
EOLIAN_API Eina_Iteratoreolian_property_keys_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API Eina_Iteratoreolian_property_values_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API Eolian_Parameter_Direction eolian_parameter_direction_get (const Eolian_Function_Parameter *param)
EOLIAN_API const Eolian_Type * eolian_parameter_type_get (const Eolian_Function_Parameter *param)
EOLIAN_API const Eolian_Expression * eolian_parameter_default_value_get (const Eolian_Function_Parameter *param)
static const char * eolian_parameter_name_get (const Eolian_Function_Parameter *param)
EOLIAN_API const Eolian_Documentation * eolian_parameter_documentation_get (const Eolian_Function_Parameter *param)
EOLIAN_API Eina_Bool eolian_parameter_is_optional (const Eolian_Function_Parameter *param_desc)
EOLIAN_API Eina_Bool eolian_parameter_is_by_ref (const Eolian_Function_Parameter *param_desc)
EOLIAN_API Eina_Bool eolian_parameter_is_move (const Eolian_Function_Parameter *param_desc)
EOLIAN_API Eina_Stringshareeolian_parameter_c_type_get (const Eolian_Function_Parameter *param_desc, Eina_Bool as_return)
EOLIAN_API const Eolian_Type * eolian_function_return_type_get (const Eolian_Function *function_id, Eolian_Function_Type ftype)
EOLIAN_API const Eolian_Expression * eolian_function_return_default_value_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API const Eolian_Documentation * eolian_function_return_documentation_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API Eina_Bool eolian_function_return_allow_unused (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API Eina_Bool eolian_function_return_is_by_ref (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API Eina_Bool eolian_function_return_is_move (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API Eina_Stringshareeolian_function_return_c_type_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
EOLIAN_API Eina_Bool eolian_function_object_is_const (const Eolian_Function *function_id)
EOLIAN_API const Eolian_Class * eolian_function_class_get (const Eolian_Function *function_id)
static const char * eolian_implement_name_get (const Eolian_Implement *impl)
EOLIAN_API const Eolian_Class * eolian_implement_class_get (const Eolian_Implement *impl)
EOLIAN_API const Eolian_Class * eolian_implement_implementing_class_get (const Eolian_Implement *impl)
EOLIAN_API const Eolian_Function * eolian_implement_function_get (const Eolian_Implement *impl, Eolian_Function_Type *func_type)
EOLIAN_API const Eolian_Documentation * eolian_implement_documentation_get (const Eolian_Implement *impl, Eolian_Function_Type f_type)
EOLIAN_API Eina_Bool eolian_implement_is_auto (const Eolian_Implement *impl, Eolian_Function_Type f_type)
EOLIAN_API Eina_Bool eolian_implement_is_empty (const Eolian_Implement *impl, Eolian_Function_Type f_type)
EOLIAN_API Eina_Bool eolian_implement_is_pure_virtual (const Eolian_Implement *impl, Eolian_Function_Type f_type)
EOLIAN_API Eina_Bool eolian_implement_is_prop_get (const Eolian_Implement *impl)
EOLIAN_API Eina_Bool eolian_implement_is_prop_set (const Eolian_Implement *impl)
EOLIAN_API Eina_Iteratoreolian_class_implements_get (const Eolian_Class *klass)
static const char * eolian_constructor_name_get (const Eolian_Constructor *ctor)
EOLIAN_API const Eolian_Class * eolian_constructor_class_get (const Eolian_Constructor *ctor)
EOLIAN_API const Eolian_Function * eolian_constructor_function_get (const Eolian_Constructor *ctor)
EOLIAN_API Eina_Bool eolian_constructor_is_optional (const Eolian_Constructor *ctor)
EOLIAN_API Eina_Iteratoreolian_class_constructors_get (const Eolian_Class *klass)
EOLIAN_API Eina_Iteratoreolian_class_events_get (const Eolian_Class *klass)
static const char * eolian_event_name_get (const Eolian_Event *event)
EOLIAN_API const Eolian_Type * eolian_event_type_get (const Eolian_Event *event)
EOLIAN_API const Eolian_Class * eolian_event_class_get (const Eolian_Event *event)
EOLIAN_API const Eolian_Documentation * eolian_event_documentation_get (const Eolian_Event *event)
EOLIAN_API Eolian_Object_Scope eolian_event_scope_get (const Eolian_Event *event)
static Eina_Bool eolian_event_is_beta (const Eolian_Event *event)
EOLIAN_API Eina_Bool eolian_event_is_hot (const Eolian_Event *event)
EOLIAN_API Eina_Bool eolian_event_is_restart (const Eolian_Event *event)
EOLIAN_API Eina_Iteratoreolian_class_parts_get (const Eolian_Class *klass)
EOLIAN_API Eina_Stringshareeolian_event_c_macro_get (const Eolian_Event *event)
static const char * eolian_part_name_get (const Eolian_Part *part)
EOLIAN_API const Eolian_Class * eolian_part_class_get (const Eolian_Part *part)
EOLIAN_API const Eolian_Documentation * eolian_part_documentation_get (const Eolian_Part *part)
static Eina_Bool eolian_part_is_beta (const Eolian_Part *part)
EOLIAN_API const Eolian_Event * eolian_class_event_by_name_get (const Eolian_Class *klass, const char *event_name)
EOLIAN_API Eina_Bool eolian_class_ctor_enable_get (const Eolian_Class *klass)
EOLIAN_API Eina_Bool eolian_class_dtor_enable_get (const Eolian_Class *klass)
EOLIAN_API Eina_Stringshareeolian_class_c_get_function_name_get (const Eolian_Class *klass)
EOLIAN_API Eina_Stringshareeolian_class_c_macro_get (const Eolian_Class *klass)
EOLIAN_API Eina_Stringshareeolian_class_c_data_type_get (const Eolian_Class *klass)
static Eina_Bool eolian_class_is_beta (const Eolian_Class *klass)
EOLIAN_API Eolian_Typedecl_Type eolian_typedecl_type_get (const Eolian_Typedecl *tp)
EOLIAN_API Eina_Iteratoreolian_typedecl_struct_fields_get (const Eolian_Typedecl *tp)
EOLIAN_API const Eolian_Struct_Type_Field * eolian_typedecl_struct_field_get (const Eolian_Typedecl *tp, const char *field)
static const char * eolian_typedecl_struct_field_name_get (const Eolian_Struct_Type_Field *field)
EOLIAN_API const Eolian_Documentation * eolian_typedecl_struct_field_documentation_get (const Eolian_Struct_Type_Field *fl)
EOLIAN_API const Eolian_Type * eolian_typedecl_struct_field_type_get (const Eolian_Struct_Type_Field *fl)
EOLIAN_API Eina_Bool eolian_typedecl_struct_field_is_by_ref (const Eolian_Struct_Type_Field *fl)
EOLIAN_API Eina_Bool eolian_typedecl_struct_field_is_move (const Eolian_Struct_Type_Field *fl)
EOLIAN_API Eina_Stringshareeolian_typedecl_struct_field_c_type_get (const Eolian_Struct_Type_Field *fl)
EOLIAN_API Eina_Iteratoreolian_typedecl_enum_fields_get (const Eolian_Typedecl *tp)
EOLIAN_API const Eolian_Enum_Type_Field * eolian_typedecl_enum_field_get (const Eolian_Typedecl *tp, const char *field)
static const char * eolian_typedecl_enum_field_name_get (const Eolian_Enum_Type_Field *field)
EOLIAN_API Eina_Stringshareeolian_typedecl_enum_field_c_constant_get (const Eolian_Enum_Type_Field *fl)
EOLIAN_API const Eolian_Documentation * eolian_typedecl_enum_field_documentation_get (const Eolian_Enum_Type_Field *fl)
EOLIAN_API const Eolian_Expression * eolian_typedecl_enum_field_value_get (const Eolian_Enum_Type_Field *fl, Eina_Bool force)
EOLIAN_API const Eolian_Documentation * eolian_typedecl_documentation_get (const Eolian_Typedecl *tp)
EOLIAN_API const Eolian_Type * eolian_typedecl_base_type_get (const Eolian_Typedecl *tp)
EOLIAN_API const Eolian_Type * eolian_typedecl_aliased_base_get (const Eolian_Typedecl *tp)
EOLIAN_API Eina_Bool eolian_typedecl_is_extern (const Eolian_Typedecl *tp)
static Eina_Bool eolian_typedecl_is_beta (const Eolian_Typedecl *tp)
EOLIAN_API Eina_Stringshareeolian_typedecl_c_type_get (const Eolian_Typedecl *tp)
static const char * eolian_typedecl_name_get (const Eolian_Typedecl *tp)
static const char * eolian_typedecl_c_name_get (const Eolian_Typedecl *tp)
static const char * eolian_typedecl_short_name_get (const Eolian_Typedecl *tp)
static Eina_Iteratoreolian_typedecl_namespaces_get (const Eolian_Typedecl *tp)
EOLIAN_API const char * eolian_typedecl_free_func_get (const Eolian_Typedecl *tp)
EOLIAN_API const Eolian_Function * eolian_typedecl_function_pointer_get (const Eolian_Typedecl *tp)
EOLIAN_API Eolian_Type_Type eolian_type_type_get (const Eolian_Type *tp)
EOLIAN_API Eolian_Type_Builtin_Type eolian_type_builtin_type_get (const Eolian_Type *tp)
EOLIAN_API const Eolian_Type * eolian_type_base_type_get (const Eolian_Type *tp)
EOLIAN_API const Eolian_Type * eolian_type_next_type_get (const Eolian_Type *tp)
EOLIAN_API const Eolian_Typedecl * eolian_type_typedecl_get (const Eolian_Type *tp)
EOLIAN_API const Eolian_Type * eolian_type_aliased_base_get (const Eolian_Type *tp)
EOLIAN_API const Eolian_Class * eolian_type_class_get (const Eolian_Type *tp)
EOLIAN_API const Eolian_Error * eolian_type_error_get (const Eolian_Type *tp)
EOLIAN_API Eina_Bool eolian_type_is_move (const Eolian_Type *tp)
EOLIAN_API Eina_Bool eolian_type_is_const (const Eolian_Type *tp)
EOLIAN_API Eina_Stringshareeolian_type_c_type_get (const Eolian_Type *tp)
static const char * eolian_type_name_get (const Eolian_Type *tp)
static const char * eolian_type_c_name_get (const Eolian_Type *tp)
static const char * eolian_type_short_name_get (const Eolian_Type *tp)
static Eina_Iteratoreolian_type_namespaces_get (const Eolian_Type *tp)
EOLIAN_API Eolian_Value eolian_expression_eval (const Eolian_Expression *expr, Eolian_Expression_Mask m)
EOLIAN_API Eina_Bool eolian_expression_eval_fill (const Eolian_Expression *expr, Eolian_Expression_Mask m, Eolian_Value *val)
EOLIAN_API Eina_Stringshareeolian_expression_value_to_literal (const Eolian_Value *v)
EOLIAN_API Eina_Stringshareeolian_expression_serialize (const Eolian_Expression *expr)
EOLIAN_API Eolian_Expression_Type eolian_expression_type_get (const Eolian_Expression *expr)
EOLIAN_API Eolian_Binary_Operator eolian_expression_binary_operator_get (const Eolian_Expression *expr)
EOLIAN_API const Eolian_Expression * eolian_expression_binary_lhs_get (const Eolian_Expression *expr)
EOLIAN_API const Eolian_Expression * eolian_expression_binary_rhs_get (const Eolian_Expression *expr)
EOLIAN_API Eolian_Unary_Operator eolian_expression_unary_operator_get (const Eolian_Expression *expr)
EOLIAN_API const Eolian_Expression * eolian_expression_unary_expression_get (const Eolian_Expression *expr)
EOLIAN_API Eolian_Value eolian_expression_value_get (const Eolian_Expression *expr)
EOLIAN_API Eina_Bool eolian_expression_value_get_fill (const Eolian_Expression *expr, Eolian_Value *val)
EOLIAN_API const Eolian_Documentation * eolian_constant_documentation_get (const Eolian_Constant *var)
EOLIAN_API const Eolian_Type * eolian_constant_type_get (const Eolian_Constant *var)
EOLIAN_API const Eolian_Expression * eolian_constant_value_get (const Eolian_Constant *var)
static const char * eolian_constant_name_get (const Eolian_Constant *tp)
static const char * eolian_constant_c_name_get (const Eolian_Constant *tp)
static const char * eolian_constant_short_name_get (const Eolian_Constant *tp)
static Eina_Iteratoreolian_constant_namespaces_get (const Eolian_Constant *tp)
EOLIAN_API Eina_Bool eolian_constant_is_extern (const Eolian_Constant *var)
static Eina_Bool eolian_constant_is_beta (const Eolian_Constant *var)
EOLIAN_API const char * eolian_error_message_get (const Eolian_Error *err)
EOLIAN_API const Eolian_Documentation * eolian_error_documentation_get (const Eolian_Error *err)
static const char * eolian_error_name_get (const Eolian_Error *err)
static const char * eolian_error_c_name_get (const Eolian_Error *err)
static const char * eolian_error_short_name_get (const Eolian_Error *err)
static Eina_Iteratoreolian_error_namespaces_get (const Eolian_Error *err)
static Eina_Bool eolian_error_is_beta (const Eolian_Error *err)
EOLIAN_API Eina_Bool eolian_error_is_extern (const Eolian_Error *err)
EOLIAN_API const char * eolian_documentation_summary_get (const Eolian_Documentation *doc)
EOLIAN_API const char * eolian_documentation_description_get (const Eolian_Documentation *doc)
EOLIAN_API const char * eolian_documentation_since_get (const Eolian_Documentation *doc)
EOLIAN_API Eina_Listeolian_documentation_string_split (const char *doc)
EOLIAN_API const char * eolian_documentation_tokenize (const char *doc, Eolian_Doc_Token *ret)
EOLIAN_API void eolian_doc_token_init (Eolian_Doc_Token *tok)
EOLIAN_API Eolian_Doc_Token_Type eolian_doc_token_type_get (const Eolian_Doc_Token *tok)
EOLIAN_API char * eolian_doc_token_text_get (const Eolian_Doc_Token *tok)
EOLIAN_API 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)
EOLIAN_API const char * eolian_typedecl_enum_legacy_prefix_get (const Eolian_Typedecl *tp)
EOLIAN_API Eina_Bool eolian_type_is_ptr (const Eolian_Type *tp)
EOLIAN_API Eina_Hasheolian_aux_state_class_children_find (const Eolian_State *state)
 Build reverse children hierarchy of an Eolian state.
EOLIAN_API size_t eolian_aux_class_callables_get (const Eolian_Class *klass, Eina_List **funcs, Eina_List **events, size_t *ownfuncs, size_t *ownevs)
 Get all APIs that are usable on the class.
EOLIAN_API Eina_Listeolian_aux_function_all_implements_get (const Eolian_Function *func, Eina_Hash *class_children)
 Get all implementations of a function in a state.
EOLIAN_API const Eolian_Implement * eolian_aux_implement_parent_get (const Eolian_Implement *impl)
 Get previous implementation in the inheritance hierarchy.
EOLIAN_API const Eolian_Documentation * eolian_aux_implement_documentation_get (const Eolian_Implement *impl, Eolian_Function_Type ftype)
 Get documentation for an implementation.
EOLIAN_API const Eolian_Documentation * eolian_aux_implement_documentation_fallback_get (const Eolian_Implement *impl)
 Get documentation fallback for an implementation.

Detailed Description

Macro Definition Documentation

◆ EOLIAN_CAST

#define EOLIAN_CAST ( type,
expr )
Value:
((const type *)expr)

◆ EOLIAN_OBJECT

#define EOLIAN_OBJECT ( expr)
Value:
EOLIAN_CAST(Eolian_Object, expr)

◆ EOLIAN_UNIT

#define EOLIAN_UNIT ( expr)
Value:
EOLIAN_CAST(Eolian_Unit, expr)

Function Documentation

◆ eolian_aux_state_class_children_find()

EOLIAN_API Eina_Hash * eolian_aux_state_class_children_find ( const Eolian_State * state)

Build reverse children hierarchy of an Eolian state.

The point of this is basically to figure out reverse inheritance. The keys of the returned hash will be class pointers and the values will be lists. If classes A and B both inherit from C, they will be in C's list after lookup.

You are responsible for freeing this hash using standard eina_hash_free().

Parameters
[in]statethe Eolian state.
Returns
a hash containing the hierarchy.

References eina_hash_find(), eina_hash_pointer_new(), eina_hash_set(), EINA_ITERATOR_FOREACH, eina_iterator_free(), and eina_list_append().

◆ eolian_aux_class_callables_get()

EOLIAN_API size_t eolian_aux_class_callables_get ( const Eolian_Class * klass,
Eina_List ** funcs,
Eina_List ** events,
size_t * ownfuncs,
size_t * ownevs )

Get all APIs that are usable on the class.

The funcs parameter will contain the functions, while events will contain events. The initial items in the lists will be the funcs and events defined by the class itself, followed by those defined in the classes it inherits from.

Funcs will contain implement pointers, events will contain event pointers.

The ownfuncs param defines how many of the list's items are the classes' own API. Same happens with ownevs for events.

You are responsible for freeing the returned lists but not their contents. If you want to skip either of the lists, pass NULL.

Parameters
[in]klassthe class.
[out]funcsthe functions list reference, NULL if not used.
[out]eventsthe event list reference, NULL if not used.
[out]ownfuncsthe number of own functions, NULL if not used.
[out]ownevsthe number of own events, NULL if not used.
Returns
the total number of items written into either list.

References eina_hash_free(), eina_hash_pointer_new(), eina_hash_set(), EINA_ITERATOR_FOREACH, eina_iterator_free(), and eina_list_append().

◆ eolian_aux_function_all_implements_get()

EOLIAN_API Eina_List * eolian_aux_function_all_implements_get ( const Eolian_Function * func,
Eina_Hash * class_children )

Get all implementations of a function in a state.

Given a function and a children hierarchy from eolian_aux_state_class_children_find(), this will func all implementations of that function in the system. This is useful for various utilities. You need to free the list but not the contents.

Parameters
[in]functhe function.
[in]class_childrenthe children hierarchy.
Returns
a list of implementations.

References eina_hash_free(), and eina_hash_pointer_new().

◆ eolian_aux_implement_parent_get()

EOLIAN_API const Eolian_Implement * eolian_aux_implement_parent_get ( const Eolian_Implement * impl)

Get previous implementation in the inheritance hierarchy.

This performs a depth-first search in the hierarchy, starting with the specific given implementation. Once it is found, this parent implementation is returned.

Parameters
[in]implthe implementation.
Returns
the parent implementation.

◆ eolian_aux_implement_documentation_get()

EOLIAN_API const Eolian_Documentation * eolian_aux_implement_documentation_get ( const Eolian_Implement * impl,
Eolian_Function_Type ftype )

Get documentation for an implementation.

This first checks if the implementation has documentation for the given type. If so, it is returned; if not, parent implementations as specified in eolian_aux_implement_parent_get() are searched and the first one to have the documentation is used.

Parameters
[in]implthe implementation.
[in]ftypethe function type (method, property, getter, setter).
Returns
the documentation or NULL.

◆ eolian_aux_implement_documentation_fallback_get()

EOLIAN_API const Eolian_Documentation * eolian_aux_implement_documentation_fallback_get ( const Eolian_Implement * impl)

Get documentation fallback for an implementation.

This is used when the implement does not have a "common" documentation block. If the given implement is a getter and not a setter, this returns the getter's documentation. If it's a setter but not a getter, it returns the setter documentation. Otherwise, it returns NULL.

Parameters
[in]implthe implementation.
Returns
the documentation or NULL.