Data Structures | Macros | Typedefs | Enumerations | Functions
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)   ((const type *)expr)
 
#define EOLIAN_OBJECT(expr)   EOLIAN_CAST(Eolian_Object, expr)
 
#define EOLIAN_UNIT(expr)   EOLIAN_CAST(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_Stateeolian_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_Uniteolian_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_Uniteolian_state_file_parse (Eolian_State *state, const char *filename)
 
EOLIAN_API const Eolian_Uniteolian_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_Uniteolian_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_Stateeolian_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_Objecteolian_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_Classeolian_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_Constanteolian_unit_constant_by_name_get (const Eolian_Unit *unit, const char *name)
 
EOLIAN_API const Eolian_Erroreolian_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_Typedecleolian_unit_alias_by_name_get (const Eolian_Unit *unit, const char *name)
 
EOLIAN_API const Eolian_Typedecleolian_unit_struct_by_name_get (const Eolian_Unit *unit, const char *name)
 
EOLIAN_API const Eolian_Typedecleolian_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_Objecteolian_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_Classeolian_state_class_by_name_get (const Eolian_State *state, const char *class_name)
 
EOLIAN_API const Eolian_Classeolian_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_Constanteolian_state_constant_by_name_get (const Eolian_State *state, const char *name)
 
static const Eolian_Erroreolian_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_Typedecleolian_state_alias_by_name_get (const Eolian_State *state, const char *name)
 
static const Eolian_Typedecleolian_state_struct_by_name_get (const Eolian_State *state, const char *name)
 
static const Eolian_Typedecleolian_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_Documentationeolian_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_Classeolian_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_Functioneolian_class_function_by_name_get (const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type)
 
EOLIAN_API const Eolian_Implementeolian_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_Typeeolian_parameter_type_get (const Eolian_Function_Parameter *param)
 
EOLIAN_API const Eolian_Expressioneolian_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_Documentationeolian_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_Typeeolian_function_return_type_get (const Eolian_Function *function_id, Eolian_Function_Type ftype)
 
EOLIAN_API const Eolian_Expressioneolian_function_return_default_value_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EOLIAN_API const Eolian_Documentationeolian_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_Classeolian_function_class_get (const Eolian_Function *function_id)
 
static const char * eolian_implement_name_get (const Eolian_Implement *impl)
 
EOLIAN_API const Eolian_Classeolian_implement_class_get (const Eolian_Implement *impl)
 
EOLIAN_API const Eolian_Classeolian_implement_implementing_class_get (const Eolian_Implement *impl)
 
EOLIAN_API const Eolian_Functioneolian_implement_function_get (const Eolian_Implement *impl, Eolian_Function_Type *func_type)
 
EOLIAN_API const Eolian_Documentationeolian_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_Classeolian_constructor_class_get (const Eolian_Constructor *ctor)
 
EOLIAN_API const Eolian_Functioneolian_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_Typeeolian_event_type_get (const Eolian_Event *event)
 
EOLIAN_API const Eolian_Classeolian_event_class_get (const Eolian_Event *event)
 
EOLIAN_API const Eolian_Documentationeolian_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_Classeolian_part_class_get (const Eolian_Part *part)
 
EOLIAN_API const Eolian_Documentationeolian_part_documentation_get (const Eolian_Part *part)
 
static Eina_Bool eolian_part_is_beta (const Eolian_Part *part)
 
EOLIAN_API const Eolian_Eventeolian_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_Fieldeolian_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_Documentationeolian_typedecl_struct_field_documentation_get (const Eolian_Struct_Type_Field *fl)
 
EOLIAN_API const Eolian_Typeeolian_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_Fieldeolian_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_Documentationeolian_typedecl_enum_field_documentation_get (const Eolian_Enum_Type_Field *fl)
 
EOLIAN_API const Eolian_Expressioneolian_typedecl_enum_field_value_get (const Eolian_Enum_Type_Field *fl, Eina_Bool force)
 
EOLIAN_API const Eolian_Documentationeolian_typedecl_documentation_get (const Eolian_Typedecl *tp)
 
EOLIAN_API const Eolian_Typeeolian_typedecl_base_type_get (const Eolian_Typedecl *tp)
 
EOLIAN_API const Eolian_Typeeolian_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_Functioneolian_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_Typeeolian_type_base_type_get (const Eolian_Type *tp)
 
EOLIAN_API const Eolian_Typeeolian_type_next_type_get (const Eolian_Type *tp)
 
EOLIAN_API const Eolian_Typedecleolian_type_typedecl_get (const Eolian_Type *tp)
 
EOLIAN_API const Eolian_Typeeolian_type_aliased_base_get (const Eolian_Type *tp)
 
EOLIAN_API const Eolian_Classeolian_type_class_get (const Eolian_Type *tp)
 
EOLIAN_API const Eolian_Erroreolian_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_Expressioneolian_expression_binary_lhs_get (const Eolian_Expression *expr)
 
EOLIAN_API const Eolian_Expressioneolian_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_Expressioneolian_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_Documentationeolian_constant_documentation_get (const Eolian_Constant *var)
 
EOLIAN_API const Eolian_Typeeolian_constant_type_get (const Eolian_Constant *var)
 
EOLIAN_API const Eolian_Expressioneolian_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_Documentationeolian_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. More...
 
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. More...
 
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. More...
 
EOLIAN_API const Eolian_Implementeolian_aux_implement_parent_get (const Eolian_Implement *impl)
 Get previous implementation in the inheritance hierarchy. More...
 
EOLIAN_API const Eolian_Documentationeolian_aux_implement_documentation_get (const Eolian_Implement *impl, Eolian_Function_Type ftype)
 Get documentation for an implementation. More...
 
EOLIAN_API const Eolian_Documentationeolian_aux_implement_documentation_fallback_get (const Eolian_Implement *impl)
 Get documentation fallback for an implementation. More...
 

Detailed Description

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_pointer_new().

◆ 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_pointer_new().

◆ 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.

◆ 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.