}
void
-database_type_add(Eolian *state, Eolian_Typedecl *def)
+database_type_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
{
- eina_hash_set(state->unit.aliases, def->full_name, def);
- eina_hash_set(state->aliases_f, def->base.file, eina_list_append
- ((Eina_List*)eina_hash_find(state->aliases_f, def->base.file),
- def));
- database_decl_add(state, def->full_name, EOLIAN_DECL_ALIAS, def->base.file, def);
+ eolian_object_add(&tp->base, tp->full_name, unit->state->unit.aliases);
+ eolian_object_add(&tp->base, tp->full_name, unit->aliases);
+ eina_hash_set(unit->state->aliases_f, tp->base.file, eina_list_append
+ ((Eina_List*)eina_hash_find(unit->state->aliases_f, tp->base.file),
+ tp));
+ database_decl_add(unit->state, tp->full_name, EOLIAN_DECL_ALIAS, tp->base.file, tp);
}
void
-database_struct_add(Eolian *state, Eolian_Typedecl *tp)
+database_struct_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
{
- eina_hash_set(state->unit.structs, tp->full_name, tp);
- eina_hash_set(state->structs_f, tp->base.file, eina_list_append
- ((Eina_List*)eina_hash_find(state->structs_f, tp->base.file), tp));
- database_decl_add(state, tp->full_name, EOLIAN_DECL_STRUCT, tp->base.file, tp);
+ eolian_object_add(&tp->base, tp->full_name, unit->state->unit.structs);
+ eolian_object_add(&tp->base, tp->full_name, unit->structs);
+ eina_hash_set(unit->state->structs_f, tp->base.file, eina_list_append
+ ((Eina_List*)eina_hash_find(unit->state->structs_f, tp->base.file), tp));
+ database_decl_add(unit->state, tp->full_name, EOLIAN_DECL_STRUCT, tp->base.file, tp);
}
void
-database_enum_add(Eolian *state, Eolian_Typedecl *tp)
+database_enum_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
{
- eina_hash_set(state->unit.enums, tp->full_name, tp);
- eina_hash_set(state->enums_f, tp->base.file, eina_list_append
- ((Eina_List*)eina_hash_find(state->enums_f, tp->base.file), tp));
- database_decl_add(state, tp->full_name, EOLIAN_DECL_ENUM, tp->base.file, tp);
+ eolian_object_add(&tp->base, tp->full_name, unit->state->unit.enums);
+ eolian_object_add(&tp->base, tp->full_name, unit->enums);
+ eina_hash_set(unit->state->enums_f, tp->base.file, eina_list_append
+ ((Eina_List*)eina_hash_find(unit->state->enums_f, tp->base.file), tp));
+ database_decl_add(unit->state, tp->full_name, EOLIAN_DECL_ENUM, tp->base.file, tp);
}
Eina_Bool
static void
pop_type(Eo_Lexer *ls)
{
- eolian_object_ref((Eolian_Object *)eina_list_data_get(ls->tmp.type_defs));
ls->tmp.type_defs = eina_list_remove_list(ls->tmp.type_defs, ls->tmp.type_defs);
}
static void
pop_typedecl(Eo_Lexer *ls)
{
- eolian_object_ref((Eolian_Object *)eina_list_data_get(ls->tmp.type_decls));
ls->tmp.type_decls = eina_list_remove_list(ls->tmp.type_decls, ls->tmp.type_decls);
}
}
check_match(ls, '}', '{', bline, bcolumn);
FILL_BASE(def->base, ls, line, column);
- if (name) database_struct_add(ls->state, def);
+ if (name) database_struct_add(ls->unit, def);
return def;
}
}
check_match(ls, '}', '{', bline, bcolumn);
FILL_BASE(def->base, ls, line, column);
- if (name) database_enum_add(ls->state, def);
+ if (name) database_enum_add(ls->unit, def);
return def;
}
}
case KW_type:
{
- database_type_add(ls->state, parse_typedef(ls));
+ database_type_add(ls->unit, parse_typedef(ls));
pop_typedecl(ls);
break;
}
case KW_function:
{
- database_type_add(ls->state, parse_function_pointer(ls));
+ database_type_add(ls->unit, parse_function_pointer(ls));
pop_typedecl(ls);
break;
}
eo_lexer_get(ls);
FILL_DOC(ls, def, doc);
FILL_BASE(def->base, ls, line, col);
- database_struct_add(ls->state, def);
+ database_struct_add(ls->unit, def);
pop_typedecl(ls);
break;
}