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

EAPI int eolian_init (void)
 
EAPI int eolian_shutdown (void)
 
EAPI unsigned short eolian_file_format_version_get (void)
 
EAPI Eolian_State * eolian_state_new (void)
 
EAPI void eolian_state_free (Eolian_State *state)
 
EAPI Eolian_Panic_Cb eolian_state_panic_cb_set (Eolian_State *state, Eolian_Panic_Cb cb)
 
EAPI Eolian_Error_Cb eolian_state_error_cb_set (Eolian_State *state, Eolian_Error_Cb cb)
 
EAPI void * eolian_state_error_data_set (Eolian_State *state, void *data)
 
EAPI Eolian_Object_Type eolian_object_type_get (const Eolian_Object *obj)
 
EAPI const Eolian_Unit * eolian_object_unit_get (const Eolian_Object *obj)
 
EAPI const char * eolian_object_file_get (const Eolian_Object *obj)
 
EAPI int eolian_object_line_get (const Eolian_Object *obj)
 
EAPI int eolian_object_column_get (const Eolian_Object *obj)
 
EAPI const char * eolian_object_name_get (const Eolian_Object *obj)
 
EAPI const char * eolian_object_c_name_get (const Eolian_Object *obj)
 
EAPI const char * eolian_object_short_name_get (const Eolian_Object *obj)
 
EAPI Eina_Iterator * eolian_object_namespaces_get (const Eolian_Object *obj)
 
EAPI Eina_Bool eolian_object_is_beta (const Eolian_Object *obj)
 
EAPI Eina_Bool eolian_state_directory_add (Eolian_State *state, const char *dir)
 
EAPI Eina_Bool eolian_state_system_directory_add (Eolian_State *state)
 
EAPI Eina_Iterator * eolian_state_eo_file_paths_get (const Eolian_State *state)
 
EAPI Eina_Iterator * eolian_state_eot_file_paths_get (const Eolian_State *state)
 
EAPI Eina_Iterator * eolian_state_eo_files_get (const Eolian_State *state)
 
EAPI Eina_Iterator * eolian_state_eot_files_get (const Eolian_State *state)
 
EAPI const Eolian_Unit * eolian_state_file_parse (Eolian_State *state, const char *filename)
 
EAPI const Eolian_Unit * eolian_state_file_path_parse (Eolian_State *state, const char *filepath)
 
EAPI Eina_Bool eolian_state_all_eo_files_parse (Eolian_State *state)
 
EAPI Eina_Bool eolian_state_all_eot_files_parse (Eolian_State *state)
 
EAPI Eina_Bool eolian_state_check (const Eolian_State *state)
 
EAPI const Eolian_Unit * eolian_state_unit_by_file_get (const Eolian_State *state, const char *file_name)
 
EAPI Eina_Iterator * eolian_state_units_get (const Eolian_State *state)
 
EAPI const Eolian_State * eolian_unit_state_get (const Eolian_Unit *unit)
 
EAPI Eina_Iterator * eolian_unit_children_get (const Eolian_Unit *unit)
 
EAPI const char * eolian_unit_file_get (const Eolian_Unit *unit)
 
EAPI const char * eolian_unit_file_path_get (const Eolian_Unit *unit)
 
EAPI unsigned short eolian_unit_version_get (const Eolian_Unit *unit)
 
EAPI const Eolian_Object * eolian_unit_object_by_name_get (const Eolian_Unit *unit, const char *name)
 
EAPI Eina_Iterator * eolian_unit_objects_get (const Eolian_Unit *unit)
 
EAPI const Eolian_Class * eolian_unit_class_by_name_get (const Eolian_Unit *unit, const char *class_name)
 
EAPI Eina_Iterator * eolian_unit_classes_get (const Eolian_Unit *unit)
 
EAPI const Eolian_Constant * eolian_unit_constant_by_name_get (const Eolian_Unit *unit, const char *name)
 
EAPI const Eolian_Error * eolian_unit_error_by_name_get (const Eolian_Unit *unit, const char *name)
 
EAPI Eina_Iterator * eolian_unit_constants_get (const Eolian_Unit *unit)
 
EAPI Eina_Iterator * eolian_unit_errors_get (const Eolian_Unit *unit)
 
EAPI const Eolian_Typedecl * eolian_unit_alias_by_name_get (const Eolian_Unit *unit, const char *name)
 
EAPI const Eolian_Typedecl * eolian_unit_struct_by_name_get (const Eolian_Unit *unit, const char *name)
 
EAPI const Eolian_Typedecl * eolian_unit_enum_by_name_get (const Eolian_Unit *unit, const char *name)
 
EAPI Eina_Iterator * eolian_unit_aliases_get (const Eolian_Unit *unit)
 
EAPI Eina_Iterator * eolian_unit_structs_get (const Eolian_Unit *unit)
 
EAPI Eina_Iterator * eolian_unit_enums_get (const Eolian_Unit *unit)
 
static const Eolian_Object * eolian_state_object_by_name_get (const Eolian_State *state, const char *name)
 
EAPI Eina_Iterator * eolian_state_objects_by_file_get (const Eolian_State *state, const char *file_name)
 
static Eina_Iterator * eolian_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)
 
EAPI const Eolian_Class * eolian_state_class_by_file_get (const Eolian_State *state, const char *file_name)
 
static Eina_Iterator * eolian_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)
 
EAPI Eina_Iterator * eolian_state_constants_by_file_get (const Eolian_State *state, const char *file_name)
 
EAPI Eina_Iterator * eolian_state_errors_by_file_get (const Eolian_State *state, const char *file_name)
 
static Eina_Iterator * eolian_state_constants_get (const Eolian_State *state)
 
static Eina_Iterator * eolian_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)
 
EAPI Eina_Iterator * eolian_state_aliases_by_file_get (const Eolian_State *state, const char *file_name)
 
EAPI Eina_Iterator * eolian_state_structs_by_file_get (const Eolian_State *state, const char *file_name)
 
EAPI Eina_Iterator * eolian_state_enums_by_file_get (const Eolian_State *state, const char *file_name)
 
static Eina_Iterator * eolian_state_aliases_get (const Eolian_State *state)
 
static Eina_Iterator * eolian_state_structs_get (const Eolian_State *state)
 
static Eina_Iterator * eolian_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_Iterator * eolian_class_namespaces_get (const Eolian_Class *klass)
 
EAPI Eolian_Class_Type eolian_class_type_get (const Eolian_Class *klass)
 
EAPI const Eolian_Documentation * eolian_class_documentation_get (const Eolian_Class *klass)
 
EAPI const char * eolian_class_c_prefix_get (const Eolian_Class *klass)
 
EAPI const char * eolian_class_event_c_prefix_get (const Eolian_Class *klass)
 
EAPI const char * eolian_class_data_type_get (const Eolian_Class *klass)
 
EAPI const Eolian_Class * eolian_class_parent_get (const Eolian_Class *klass)
 
EAPI Eina_Iterator * eolian_class_requires_get (const Eolian_Class *klass)
 
EAPI Eina_Iterator * eolian_class_extensions_get (const Eolian_Class *klass)
 
EAPI Eina_Iterator * eolian_class_functions_get (const Eolian_Class *klass, Eolian_Function_Type func_type)
 
EAPI Eolian_Function_Type eolian_function_type_get (const Eolian_Function *function_id)
 
EAPI 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)
 
EAPI Eina_Stringshare * eolian_function_full_c_name_get (const Eolian_Function *function_id, Eolian_Function_Type ftype)
 
EAPI const Eolian_Function * eolian_class_function_by_name_get (const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type)
 
EAPI const Eolian_Implement * eolian_function_implement_get (const Eolian_Function *function_id)
 
EAPI Eina_Bool eolian_function_is_static (const Eolian_Function *function_id)
 
static Eina_Bool eolian_function_is_beta (const Eolian_Function *function_id)
 
EAPI Eina_Bool eolian_function_is_constructor (const Eolian_Function *function_id, const Eolian_Class *klass)
 
EAPI Eina_Iterator * eolian_function_parameters_get (const Eolian_Function *function_id)
 
EAPI Eina_Iterator * eolian_property_keys_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI Eina_Iterator * eolian_property_values_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI Eolian_Parameter_Direction eolian_parameter_direction_get (const Eolian_Function_Parameter *param)
 
EAPI const Eolian_Type * eolian_parameter_type_get (const Eolian_Function_Parameter *param)
 
EAPI 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)
 
EAPI const Eolian_Documentation * eolian_parameter_documentation_get (const Eolian_Function_Parameter *param)
 
EAPI Eina_Bool eolian_parameter_is_optional (const Eolian_Function_Parameter *param_desc)
 
EAPI Eina_Bool eolian_parameter_is_by_ref (const Eolian_Function_Parameter *param_desc)
 
EAPI Eina_Bool eolian_parameter_is_move (const Eolian_Function_Parameter *param_desc)
 
EAPI Eina_Stringshare * eolian_parameter_c_type_get (const Eolian_Function_Parameter *param_desc, Eina_Bool as_return)
 
EAPI const Eolian_Type * eolian_function_return_type_get (const Eolian_Function *function_id, Eolian_Function_Type ftype)
 
EAPI const Eolian_Expression * eolian_function_return_default_value_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI const Eolian_Documentation * eolian_function_return_documentation_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI Eina_Bool eolian_function_return_allow_unused (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI Eina_Bool eolian_function_return_is_by_ref (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI Eina_Bool eolian_function_return_is_move (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI Eina_Stringshare * eolian_function_return_c_type_get (const Eolian_Function *foo_id, Eolian_Function_Type ftype)
 
EAPI Eina_Bool eolian_function_object_is_const (const Eolian_Function *function_id)
 
EAPI const Eolian_Class * eolian_function_class_get (const Eolian_Function *function_id)
 
static const char * eolian_implement_name_get (const Eolian_Implement *impl)
 
EAPI const Eolian_Class * eolian_implement_class_get (const Eolian_Implement *impl)
 
EAPI const Eolian_Class * eolian_implement_implementing_class_get (const Eolian_Implement *impl)
 
EAPI const Eolian_Function * eolian_implement_function_get (const Eolian_Implement *impl, Eolian_Function_Type *func_type)
 
EAPI const Eolian_Documentation * eolian_implement_documentation_get (const Eolian_Implement *impl, Eolian_Function_Type f_type)
 
EAPI Eina_Bool eolian_implement_is_auto (const Eolian_Implement *impl, Eolian_Function_Type f_type)
 
EAPI Eina_Bool eolian_implement_is_empty (const Eolian_Implement *impl, Eolian_Function_Type f_type)
 
EAPI Eina_Bool eolian_implement_is_pure_virtual (const Eolian_Implement *impl, Eolian_Function_Type f_type)
 
EAPI Eina_Bool eolian_implement_is_prop_get (const Eolian_Implement *impl)
 
EAPI Eina_Bool eolian_implement_is_prop_set (const Eolian_Implement *impl)
 
EAPI Eina_Iterator * eolian_class_implements_get (const Eolian_Class *klass)
 
static const char * eolian_constructor_name_get (const Eolian_Constructor *ctor)
 
EAPI const Eolian_Class * eolian_constructor_class_get (const Eolian_Constructor *ctor)
 
EAPI const Eolian_Function * eolian_constructor_function_get (const Eolian_Constructor *ctor)
 
EAPI Eina_Bool eolian_constructor_is_optional (const Eolian_Constructor *ctor)
 
EAPI Eina_Iterator * eolian_class_constructors_get (const Eolian_Class *klass)
 
EAPI Eina_Iterator * eolian_class_events_get (const Eolian_Class *klass)
 
static const char * eolian_event_name_get (const Eolian_Event *event)
 
EAPI const Eolian_Type * eolian_event_type_get (const Eolian_Event *event)
 
EAPI const Eolian_Class * eolian_event_class_get (const Eolian_Event *event)
 
EAPI const Eolian_Documentation * eolian_event_documentation_get (const Eolian_Event *event)
 
EAPI Eolian_Object_Scope eolian_event_scope_get (const Eolian_Event *event)
 
static Eina_Bool eolian_event_is_beta (const Eolian_Event *event)
 
EAPI Eina_Bool eolian_event_is_hot (const Eolian_Event *event)
 
EAPI Eina_Bool eolian_event_is_restart (const Eolian_Event *event)
 
EAPI Eina_Iterator * eolian_class_parts_get (const Eolian_Class *klass)
 
EAPI Eina_Stringshare * eolian_event_c_macro_get (const Eolian_Event *event)
 
static const char * eolian_part_name_get (const Eolian_Part *part)
 
EAPI const Eolian_Class * eolian_part_class_get (const Eolian_Part *part)
 
EAPI const Eolian_Documentation * eolian_part_documentation_get (const Eolian_Part *part)
 
static Eina_Bool eolian_part_is_beta (const Eolian_Part *part)
 
EAPI const Eolian_Event * eolian_class_event_by_name_get (const Eolian_Class *klass, const char *event_name)
 
EAPI Eina_Bool eolian_class_ctor_enable_get (const Eolian_Class *klass)
 
EAPI Eina_Bool eolian_class_dtor_enable_get (const Eolian_Class *klass)
 
EAPI Eina_Stringshare * eolian_class_c_get_function_name_get (const Eolian_Class *klass)
 
EAPI Eina_Stringshare * eolian_class_c_macro_get (const Eolian_Class *klass)
 
EAPI Eina_Stringshare * eolian_class_c_data_type_get (const Eolian_Class *klass)
 
static Eina_Bool eolian_class_is_beta (const Eolian_Class *klass)
 
EAPI Eolian_Typedecl_Type eolian_typedecl_type_get (const Eolian_Typedecl *tp)
 
EAPI Eina_Iterator * eolian_typedecl_struct_fields_get (const Eolian_Typedecl *tp)
 
EAPI 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)
 
EAPI const Eolian_Documentation * eolian_typedecl_struct_field_documentation_get (const Eolian_Struct_Type_Field *fl)
 
EAPI const Eolian_Type * eolian_typedecl_struct_field_type_get (const Eolian_Struct_Type_Field *fl)
 
EAPI Eina_Bool eolian_typedecl_struct_field_is_by_ref (const Eolian_Struct_Type_Field *fl)
 
EAPI Eina_Bool eolian_typedecl_struct_field_is_move (const Eolian_Struct_Type_Field *fl)
 
EAPI Eina_Stringshare * eolian_typedecl_struct_field_c_type_get (const Eolian_Struct_Type_Field *fl)
 
EAPI Eina_Iterator * eolian_typedecl_enum_fields_get (const Eolian_Typedecl *tp)
 
EAPI 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)
 
EAPI Eina_Stringshare * eolian_typedecl_enum_field_c_constant_get (const Eolian_Enum_Type_Field *fl)
 
EAPI const Eolian_Documentation * eolian_typedecl_enum_field_documentation_get (const Eolian_Enum_Type_Field *fl)
 
EAPI const Eolian_Expression * eolian_typedecl_enum_field_value_get (const Eolian_Enum_Type_Field *fl, Eina_Bool force)
 
EAPI const Eolian_Documentation * eolian_typedecl_documentation_get (const Eolian_Typedecl *tp)
 
EAPI const Eolian_Type * eolian_typedecl_base_type_get (const Eolian_Typedecl *tp)
 
EAPI const Eolian_Type * eolian_typedecl_aliased_base_get (const Eolian_Typedecl *tp)
 
EAPI Eina_Bool eolian_typedecl_is_extern (const Eolian_Typedecl *tp)
 
static Eina_Bool eolian_typedecl_is_beta (const Eolian_Typedecl *tp)
 
EAPI Eina_Stringshare * eolian_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_Iterator * eolian_typedecl_namespaces_get (const Eolian_Typedecl *tp)
 
EAPI const char * eolian_typedecl_free_func_get (const Eolian_Typedecl *tp)
 
EAPI const Eolian_Function * eolian_typedecl_function_pointer_get (const Eolian_Typedecl *tp)
 
EAPI Eolian_Type_Type eolian_type_type_get (const Eolian_Type *tp)
 
EAPI Eolian_Type_Builtin_Type eolian_type_builtin_type_get (const Eolian_Type *tp)
 
EAPI const Eolian_Type * eolian_type_base_type_get (const Eolian_Type *tp)
 
EAPI const Eolian_Type * eolian_type_next_type_get (const Eolian_Type *tp)
 
EAPI const Eolian_Typedecl * eolian_type_typedecl_get (const Eolian_Type *tp)
 
EAPI const Eolian_Type * eolian_type_aliased_base_get (const Eolian_Type *tp)
 
EAPI const Eolian_Class * eolian_type_class_get (const Eolian_Type *tp)
 
EAPI const Eolian_Error * eolian_type_error_get (const Eolian_Type *tp)
 
EAPI Eina_Bool eolian_type_is_move (const Eolian_Type *tp)
 
EAPI Eina_Bool eolian_type_is_const (const Eolian_Type *tp)
 
EAPI Eina_Stringshare * eolian_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_Iterator * eolian_type_namespaces_get (const Eolian_Type *tp)
 
EAPI Eolian_Value eolian_expression_eval (const Eolian_Expression *expr, Eolian_Expression_Mask m)
 
EAPI Eina_Bool eolian_expression_eval_fill (const Eolian_Expression *expr, Eolian_Expression_Mask m, Eolian_Value *val)
 
EAPI Eina_Stringshare * eolian_expression_value_to_literal (const Eolian_Value *v)
 
EAPI Eina_Stringshare * eolian_expression_serialize (const Eolian_Expression *expr)
 
EAPI Eolian_Expression_Type eolian_expression_type_get (const Eolian_Expression *expr)
 
EAPI Eolian_Binary_Operator eolian_expression_binary_operator_get (const Eolian_Expression *expr)
 
EAPI const Eolian_Expression * eolian_expression_binary_lhs_get (const Eolian_Expression *expr)
 
EAPI const Eolian_Expression * eolian_expression_binary_rhs_get (const Eolian_Expression *expr)
 
EAPI Eolian_Unary_Operator eolian_expression_unary_operator_get (const Eolian_Expression *expr)
 
EAPI const Eolian_Expression * eolian_expression_unary_expression_get (const Eolian_Expression *expr)
 
EAPI Eolian_Value eolian_expression_value_get (const Eolian_Expression *expr)
 
EAPI Eina_Bool eolian_expression_value_get_fill (const Eolian_Expression *expr, Eolian_Value *val)
 
EAPI const Eolian_Documentation * eolian_constant_documentation_get (const Eolian_Constant *var)
 
EAPI const Eolian_Type * eolian_constant_type_get (const Eolian_Constant *var)
 
EAPI 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_Iterator * eolian_constant_namespaces_get (const Eolian_Constant *tp)
 
EAPI Eina_Bool eolian_constant_is_extern (const Eolian_Constant *var)
 
static Eina_Bool eolian_constant_is_beta (const Eolian_Constant *var)
 
EAPI const char * eolian_error_message_get (const Eolian_Error *err)
 
EAPI 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_Iterator * eolian_error_namespaces_get (const Eolian_Error *err)
 
static Eina_Bool eolian_error_is_beta (const Eolian_Error *err)
 
EAPI Eina_Bool eolian_error_is_extern (const Eolian_Error *err)
 
EAPI const char * eolian_documentation_summary_get (const Eolian_Documentation *doc)
 
EAPI const char * eolian_documentation_description_get (const Eolian_Documentation *doc)
 
EAPI const char * eolian_documentation_since_get (const Eolian_Documentation *doc)
 
EAPI Eina_List * eolian_documentation_string_split (const char *doc)
 
EAPI const char * eolian_documentation_tokenize (const char *doc, Eolian_Doc_Token *ret)
 
EAPI void eolian_doc_token_init (Eolian_Doc_Token *tok)
 
EAPI Eolian_Doc_Token_Type eolian_doc_token_type_get (const Eolian_Doc_Token *tok)
 
EAPI char * eolian_doc_token_text_get (const Eolian_Doc_Token *tok)
 
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)
 
EAPI const char * eolian_typedecl_enum_legacy_prefix_get (const Eolian_Typedecl *tp)
 
EAPI Eina_Bool eolian_type_is_ptr (const Eolian_Type *tp)
 
EAPI Eina_Hash * eolian_aux_state_class_children_find (const Eolian_State *state)
 Build reverse children hierarchy of an Eolian state. More...
 
EAPI 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...
 
EAPI 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. More...
 
EAPI const Eolian_Implement * eolian_aux_implement_parent_get (const Eolian_Implement *impl)
 Get previous implementation in the inheritance hierarchy. More...
 
EAPI const Eolian_Documentation * eolian_aux_implement_documentation_get (const Eolian_Implement *impl, Eolian_Function_Type ftype)
 Get documentation for an implementation. More...
 
EAPI const Eolian_Documentation * eolian_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()

EAPI 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()

EAPI 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()

EAPI 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()

EAPI 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()

EAPI 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()

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