q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c7b44dfa2c199009ee735610a6d8d6f10c5d5b16
commit c7b44dfa2c199009ee735610a6d8d6f10c5d5b16 Author: Daniel Kolesa <d.kol...@osg.samsung.com> Date: Thu Mar 8 19:57:55 2018 +0100 eolian gen: switch from decl api to object api --- src/bin/eolian/docs.c | 4 ++-- src/bin/eolian/main.c | 6 +++--- src/bin/eolian/types.c | 34 ++++++++++++++++++---------------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/bin/eolian/docs.c b/src/bin/eolian/docs.c index acb56089a9..a9ede0d82b 100644 --- a/src/bin/eolian/docs.c +++ b/src/bin/eolian/docs.c @@ -22,10 +22,10 @@ static void _generate_ref(const Eolian_Unit *src, const char *refn, Eina_Strbuf *wbuf, Eina_Bool use_legacy) { - const Eolian_Declaration *decl = eolian_declaration_get_by_name(src, refn); + const Eolian_Object *decl = eolian_unit_object_by_name_get(src, refn); if (decl) { - char *n = strdup(eolian_declaration_name_get(decl)); + char *n = strdup(eolian_object_name_get(decl)); char *p = n; while ((p = strchr(p, '.'))) *p = '_'; eina_strbuf_append(wbuf, n); diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 3bc76458df..67fff4f146 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -324,7 +324,7 @@ _write_header(const Eolian_State *eos, const Eolian_Unit *src, const char *ofnam INF("generating header: %s (legacy: %d)", ofname, legacy); Eina_Strbuf *buf = eina_strbuf_new(); - eo_gen_types_header_gen(src, eolian_declarations_get_by_file(eos, ifname), + eo_gen_types_header_gen(src, eolian_state_objects_by_file_get(eos, ifname), buf, EINA_TRUE, legacy); buf = _include_guard(ifname, "TYPES", buf); @@ -360,7 +360,7 @@ _write_stub_header(const Eolian_State *eos, const Eolian_Unit *src, const char * INF("generating stub header: %s", ofname); Eina_Strbuf *buf = eina_strbuf_new(); - eo_gen_types_header_gen(src, eolian_declarations_get_by_file(eos, ifname), + eo_gen_types_header_gen(src, eolian_state_objects_by_file_get(eos, ifname), buf, EINA_FALSE, EINA_FALSE); Eina_Strbuf *cltd = eo_gen_class_typedef_gen(eos, ifname); @@ -386,7 +386,7 @@ _write_source(const Eolian_State *eos, const char *ofname, Eina_Strbuf *buf = eina_strbuf_new(); const Eolian_Class *cl = eolian_state_class_by_file_get(eos, ifname); - eo_gen_types_source_gen(eolian_declarations_get_by_file(eos, ifname), buf); + eo_gen_types_source_gen(eolian_state_objects_by_file_get(eos, ifname), buf); eo_gen_source_gen(cl, buf); if (cl || (eot && eina_strbuf_length_get(buf))) { diff --git a/src/bin/eolian/types.c b/src/bin/eolian/types.c index 6578eace52..924c5515fc 100644 --- a/src/bin/eolian/types.c +++ b/src/bin/eolian/types.c @@ -207,14 +207,14 @@ void eo_gen_types_header_gen(const Eolian_Unit *src, Eina_Iterator *itr, Eina_Strbuf *buf, Eina_Bool full, Eina_Bool legacy) { - const Eolian_Declaration *decl; + const Eolian_Object *decl; EINA_ITERATOR_FOREACH(itr, decl) { - Eolian_Declaration_Type dt = eolian_declaration_type_get(decl); + Eolian_Object_Type dt = eolian_object_type_get(decl); - if (dt == EOLIAN_DECL_VAR) + if (dt == EOLIAN_OBJECT_VARIABLE) { - const Eolian_Variable *vr = eolian_declaration_variable_get(decl); + const Eolian_Variable *vr = (const Eolian_Variable *)decl; if (!vr || eolian_variable_is_extern(vr)) continue; @@ -228,18 +228,20 @@ void eo_gen_types_header_gen(const Eolian_Unit *src, continue; } - if ((dt != EOLIAN_DECL_ALIAS) && - (dt != EOLIAN_DECL_STRUCT) && - (dt != EOLIAN_DECL_ENUM)) + if (dt != EOLIAN_OBJECT_TYPEDECL) continue; - if (dt == EOLIAN_DECL_ENUM && !full) + + const Eolian_Typedecl *tp = (const Eolian_Typedecl *)decl; + + if (eolian_typedecl_is_extern(tp)) continue; - const Eolian_Typedecl *tp = eolian_declaration_data_type_get(decl); - if (!tp || eolian_typedecl_is_extern(tp)) + Eolian_Typedecl_Type tpt = eolian_typedecl_type_get(tp); + + if (tpt == EOLIAN_TYPEDECL_ENUM && !full) continue; - if (eolian_typedecl_type_get(tp) == EOLIAN_TYPEDECL_ALIAS) + if (tpt == EOLIAN_TYPEDECL_ALIAS) { const Eolian_Type *btp = eolian_typedecl_base_type_get(tp); if (eolian_type_type_get(btp) == EOLIAN_TYPE_UNDEFINED) @@ -259,16 +261,16 @@ void eo_gen_types_header_gen(const Eolian_Unit *src, void eo_gen_types_source_gen(Eina_Iterator *itr, Eina_Strbuf *buf) { - const Eolian_Declaration *decl; + const Eolian_Object *decl; EINA_ITERATOR_FOREACH(itr, decl) { - Eolian_Declaration_Type dt = eolian_declaration_type_get(decl); + Eolian_Object_Type dt = eolian_object_type_get(decl); - if (dt != EOLIAN_DECL_VAR) + if (dt != EOLIAN_OBJECT_VARIABLE) continue; - const Eolian_Variable *vr = eolian_declaration_variable_get(decl); - if (!vr || eolian_variable_is_extern(vr)) + const Eolian_Variable *vr = (const Eolian_Variable *)decl; + if (eolian_variable_is_extern(vr)) continue; if (eolian_variable_type_get(vr) == EOLIAN_VAR_CONSTANT) --