eolian: pass unit to class get_by_name/file

This commit is contained in:
Daniel Kolesa 2017-05-24 16:36:23 +02:00
parent 83bf422159
commit 45a73a0878
12 changed files with 92 additions and 77 deletions

View File

@ -19,7 +19,8 @@ _indent_line(Eina_Strbuf *buf, int ind)
: DOC_LINE_LIMIT)
static void
_generate_ref(const char *refn, Eina_Strbuf *wbuf, Eina_Bool use_legacy)
_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(refn);
if (decl)
@ -46,7 +47,7 @@ _generate_ref(const char *refn, Eina_Strbuf *wbuf, Eina_Bool use_legacy)
eina_stringshare_del(bname);
goto noref;
}
_generate_ref(bname, wbuf, use_legacy);
_generate_ref(src, bname, wbuf, use_legacy);
eina_strbuf_append(wbuf, sfx);
eina_stringshare_del(bname);
return;
@ -67,7 +68,7 @@ _generate_ref(const char *refn, Eina_Strbuf *wbuf, Eina_Bool use_legacy)
return;
}
const Eolian_Class *cl = eolian_class_get_by_name(bname);
const Eolian_Class *cl = eolian_class_get_by_name(src, bname);
const Eolian_Function *fn = NULL;
/* match methods and properties; we're only figuring out existence */
Eolian_Function_Type ftype = EOLIAN_UNRESOLVED;
@ -83,7 +84,7 @@ _generate_ref(const char *refn, Eina_Strbuf *wbuf, Eina_Bool use_legacy)
while ((mname != refn) && (*mname != '.')) --mname;
if (mname == refn) goto noref;
bname = eina_stringshare_add_length(refn, mname - refn);
cl = eolian_class_get_by_name(bname);
cl = eolian_class_get_by_name(src, bname);
eina_stringshare_del(bname);
}
if (cl)
@ -113,8 +114,8 @@ noref:
}
static int
_append_section(const char *desc, int ind, int curl, Eina_Strbuf *buf,
Eina_Strbuf *wbuf, Eina_Bool use_legacy)
_append_section(const Eolian_Unit *src, const char *desc, int ind, int curl,
Eina_Strbuf *buf, Eina_Strbuf *wbuf, Eina_Bool use_legacy)
{
Eina_Bool try_note = EINA_TRUE;
while (*desc)
@ -165,7 +166,7 @@ _append_section(const char *desc, int ind, int curl, Eina_Strbuf *buf,
++desc;
if (*(desc - 1) == '.') --desc;
Eina_Stringshare *refn = eina_stringshare_add_length(ref, desc - ref);
_generate_ref(refn, wbuf, use_legacy);
_generate_ref(src, refn, wbuf, use_legacy);
eina_stringshare_del(refn);
}
else
@ -269,8 +270,8 @@ _append_group(Eina_Strbuf *buf, char *sgrp, int indent)
}
static void
_gen_doc_brief(const char *summary, const char *since, const char *group,
const char *el, int indent, Eina_Strbuf *buf,
_gen_doc_brief(const Eolian_Unit *src, const char *summary, const char *since,
const char *group, const char *el, int indent, Eina_Strbuf *buf,
Eina_Bool use_legacy)
{
int curl = 4 + indent;
@ -279,7 +280,7 @@ _gen_doc_brief(const char *summary, const char *since, const char *group,
eina_strbuf_append(buf, "/**< ");
else
eina_strbuf_append(buf, "/** ");
curl = _append_section(summary, indent, curl, buf, wbuf, use_legacy);
curl = _append_section(src, summary, indent, curl, buf, wbuf, use_legacy);
eina_strbuf_free(wbuf);
curl = _append_extra(el, indent, curl, EINA_FALSE, buf);
curl = _append_since(since, indent, curl, buf);
@ -300,7 +301,8 @@ _gen_doc_brief(const char *summary, const char *since, const char *group,
}
static void
_gen_doc_full(const char *summary, const char *description, const char *since,
_gen_doc_full(const Eolian_Unit *src, const char *summary,
const char *description, const char *since,
const char *group, const char *el, int indent, Eina_Strbuf *buf,
Eina_Bool use_legacy)
{
@ -313,13 +315,13 @@ _gen_doc_full(const char *summary, const char *description, const char *since,
curl += _indent_line(buf, indent);
eina_strbuf_append(buf, " * @brief ");
curl += sizeof(" * @brief ") - 1;
_append_section(summary, indent, curl, buf, wbuf, use_legacy);
_append_section(src, summary, indent, curl, buf, wbuf, use_legacy);
eina_strbuf_append_char(buf, '\n');
_indent_line(buf, indent);
eina_strbuf_append(buf, " *\n");
curl = _indent_line(buf, indent);
eina_strbuf_append(buf, " * ");
_append_section(description, indent, curl + 3, buf, wbuf, use_legacy);
_append_section(src, description, indent, curl + 3, buf, wbuf, use_legacy);
curl = _append_extra(el, indent, curl, EINA_TRUE, buf);
curl = _append_since(since, indent, curl, buf);
eina_strbuf_append_char(buf, '\n');
@ -336,8 +338,9 @@ _gen_doc_full(const char *summary, const char *description, const char *since,
}
static Eina_Strbuf *
_gen_doc_buf(const Eolian_Documentation *doc, const char *group,
const char *el, int indent, Eina_Bool use_legacy)
_gen_doc_buf(const Eolian_Unit *src, const Eolian_Documentation *doc,
const char *group, const char *el, int indent,
Eina_Bool use_legacy)
{
if (!doc) return NULL;
@ -347,21 +350,22 @@ _gen_doc_buf(const Eolian_Documentation *doc, const char *group,
Eina_Strbuf *buf = eina_strbuf_new();
if (!desc)
_gen_doc_brief(sum, since, group, el, indent, buf, use_legacy);
_gen_doc_brief(src, sum, since, group, el, indent, buf, use_legacy);
else
_gen_doc_full(sum, desc, since, group, el, indent, buf, use_legacy);
_gen_doc_full(src, sum, desc, since, group, el, indent, buf, use_legacy);
return buf;
}
Eina_Strbuf *
eo_gen_docs_full_gen(const Eolian_Documentation *doc, const char *group,
int indent, Eina_Bool use_legacy)
eo_gen_docs_full_gen(const Eolian_Unit *src, const Eolian_Documentation *doc,
const char *group, int indent, Eina_Bool use_legacy)
{
return _gen_doc_buf(doc, group, NULL, indent, use_legacy);
return _gen_doc_buf(src, doc, group, NULL, indent, use_legacy);
}
Eina_Strbuf *
eo_gen_docs_event_gen(const Eolian_Event *ev, const char *group)
eo_gen_docs_event_gen(const Eolian_Unit *src, const Eolian_Event *ev,
const char *group)
{
if (!ev) return NULL;
@ -392,12 +396,13 @@ eo_gen_docs_event_gen(const Eolian_Event *ev, const char *group)
return bufs;
}
return _gen_doc_buf(doc, group, p, 0, EINA_FALSE);
return _gen_doc_buf(src, doc, group, p, 0, EINA_FALSE);
}
Eina_Strbuf *
eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
int indent, Eina_Bool use_legacy)
eo_gen_docs_func_gen(const Eolian_Unit *src, const Eolian_Function *fid,
Eolian_Function_Type ftype, int indent,
Eina_Bool use_legacy)
{
const Eolian_Function_Parameter *par = NULL;
const Eolian_Function_Parameter *vpar = NULL;
@ -506,7 +511,7 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
/* only summary, nothing else; generate standard brief doc */
if (!desc && !par && !vpar && !rdoc && (ftype == EOLIAN_METHOD || !pdoc))
{
_gen_doc_brief(sum ? sum : "No description supplied.", since, group,
_gen_doc_brief(src, sum ? sum : "No description supplied.", since, group,
NULL, indent, buf, use_legacy);
return buf;
}
@ -517,7 +522,7 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
curl += _indent_line(buf, indent);
eina_strbuf_append(buf, " * @brief ");
curl += sizeof(" * @brief ") - 1;
_append_section(sum ? sum : "No description supplied.",
_append_section(src, sum ? sum : "No description supplied.",
indent, curl, buf, wbuf, use_legacy);
eina_strbuf_append_char(buf, '\n');
@ -531,7 +536,7 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
{
curl = _indent_line(buf, indent);
eina_strbuf_append(buf, " * ");
_append_section(desc, indent, curl + 3, buf, wbuf, use_legacy);
_append_section(src, desc, indent, curl + 3, buf, wbuf, use_legacy);
eina_strbuf_append_char(buf, '\n');
if (par || rdoc || pdoc || since)
{
@ -545,7 +550,7 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
const char *pdesc = eolian_documentation_description_get(pdoc);
curl = _indent_line(buf, indent);
eina_strbuf_append(buf, " * ");
_append_section(eolian_documentation_summary_get(pdoc), indent,
_append_section(src, eolian_documentation_summary_get(pdoc), indent,
curl + 3, buf, wbuf, use_legacy);
eina_strbuf_append_char(buf, '\n');
if (pdesc)
@ -554,7 +559,7 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
eina_strbuf_append(buf, " *\n");
curl = _indent_line(buf, indent);
eina_strbuf_append(buf, " * ");
_append_section(pdesc, indent, curl + 3, buf, wbuf, use_legacy);
_append_section(src, pdesc, indent, curl + 3, buf, wbuf, use_legacy);
eina_strbuf_append_char(buf, '\n');
}
if (par || rdoc || since)
@ -597,7 +602,7 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
{
eina_strbuf_append_char(buf, ' ');
curl += 1;
_append_section(eolian_documentation_summary_get(adoc),
_append_section(src, eolian_documentation_summary_get(adoc),
indent, curl, buf, wbuf, use_legacy);
}
@ -630,8 +635,8 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
curl = _indent_line(buf, indent);
eina_strbuf_append(buf, " * @return ");
curl += sizeof(" * @return ") - 1;
_append_section(eolian_documentation_summary_get(rdoc), indent, curl,
buf, wbuf, use_legacy);
_append_section(src, eolian_documentation_summary_get(rdoc), indent,
curl, buf, wbuf, use_legacy);
eina_strbuf_append_char(buf, '\n');
if (since)
{

View File

@ -14,7 +14,7 @@
* @return A documentation comment
*
*/
Eina_Strbuf *eo_gen_docs_full_gen(const Eolian_Documentation *doc, const char *group, int indent, Eina_Bool use_legacy);
Eina_Strbuf *eo_gen_docs_full_gen(const Eolian_Unit *unit, const Eolian_Documentation *doc, const char *group, int indent, Eina_Bool use_legacy);
/*
* @brief Generate function documentation
@ -27,7 +27,7 @@ Eina_Strbuf *eo_gen_docs_full_gen(const Eolian_Documentation *doc, const char *g
* @return A documentation comment
*
*/
Eina_Strbuf *eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype, int indent, Eina_Bool use_legacy);
Eina_Strbuf *eo_gen_docs_func_gen(const Eolian_Unit *unit, const Eolian_Function *fid, Eolian_Function_Type ftype, int indent, Eina_Bool use_legacy);
/*
* @brief Generate event documentation
@ -38,7 +38,7 @@ Eina_Strbuf *eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Ty
* @return A documentation comment
*
*/
Eina_Strbuf *eo_gen_docs_event_gen(const Eolian_Event *ev, const char *group);
Eina_Strbuf *eo_gen_docs_event_gen(const Eolian_Unit *unit, const Eolian_Event *ev, const char *group);
#endif

View File

@ -12,8 +12,9 @@ _get_add_star(Eolian_Function_Type ftype, Eolian_Parameter_Dir pdir)
}
static void
_gen_func(const Eolian_Function *fid, Eolian_Function_Type ftype,
Eina_Strbuf *buf, char *cname, char *cnameu, Eina_Bool legacy)
_gen_func(const Eolian_Unit *src, const Eolian_Function *fid,
Eolian_Function_Type ftype, Eina_Strbuf *buf, char *cname,
char *cnameu, Eina_Bool legacy)
{
Eina_Stringshare *fcn = eolian_function_full_c_name_get(fid, ftype, legacy);
if (!fcn)
@ -49,7 +50,7 @@ _gen_func(const Eolian_Function *fid, Eolian_Function_Type ftype,
hasdoc = !!eolian_implement_documentation_get(fimp, EOLIAN_PROPERTY);
if (hasdoc)
{
Eina_Strbuf *dbuf = eo_gen_docs_func_gen(fid, ftype, 0, legacy);
Eina_Strbuf *dbuf = eo_gen_docs_func_gen(src, fid, ftype, 0, legacy);
eina_strbuf_append(buf, eina_strbuf_string_get(dbuf));
eina_strbuf_append_char(buf, '\n');
eina_strbuf_free(dbuf);
@ -183,7 +184,7 @@ _gen_func(const Eolian_Function *fid, Eolian_Function_Type ftype,
}
void
eo_gen_header_gen(const Eolian_Unit *src EINA_UNUSED, const Eolian_Class *cl,
eo_gen_header_gen(const Eolian_Unit *src, const Eolian_Class *cl,
Eina_Strbuf *buf, Eina_Bool legacy)
{
if (!cl)
@ -199,7 +200,7 @@ eo_gen_header_gen(const Eolian_Unit *src EINA_UNUSED, const Eolian_Class *cl,
const Eolian_Documentation *doc = eolian_class_documentation_get(cl);
if (doc)
{
Eina_Strbuf *cdoc = eo_gen_docs_full_gen(doc,
Eina_Strbuf *cdoc = eo_gen_docs_full_gen(src, doc,
eolian_class_full_name_get(cl), 0, EINA_FALSE);
if (cdoc)
{
@ -239,15 +240,15 @@ eo_gen_header_gen(const Eolian_Unit *src EINA_UNUSED, const Eolian_Class *cl,
{
case EOLIAN_PROP_GET:
case EOLIAN_PROP_SET:
_gen_func(fid, ftype, buf, cname, cnameu, legacy);
_gen_func(src, fid, ftype, buf, cname, cnameu, legacy);
break;
case EOLIAN_PROPERTY:
_gen_func(fid, EOLIAN_PROP_SET, buf, cname, cnameu, legacy);
_gen_func(src, fid, EOLIAN_PROP_SET, buf, cname, cnameu, legacy);
eina_strbuf_append_char(buf, '\n');
_gen_func(fid, EOLIAN_PROP_GET, buf, cname, cnameu, legacy);
_gen_func(src, fid, EOLIAN_PROP_GET, buf, cname, cnameu, legacy);
break;
default:
_gen_func(fid, EOLIAN_METHOD, buf, cname, cnameu, legacy);
_gen_func(src, fid, EOLIAN_METHOD, buf, cname, cnameu, legacy);
}
}
eina_iterator_free(itr);
@ -284,7 +285,7 @@ events:
eina_strbuf_append_printf(buf, "EWAPI extern const "
"Efl_Event_Description _%s;\n\n", evn);
Eina_Strbuf *evdbuf = eo_gen_docs_event_gen(ev,
Eina_Strbuf *evdbuf = eo_gen_docs_event_gen(src, ev,
eolian_class_full_name_get(cl));
eina_strbuf_append(buf, eina_strbuf_string_get(evdbuf));
eina_strbuf_append_char(buf, '\n');

View File

@ -305,7 +305,7 @@ _write_header(const Eolian_Unit *src, const char *ofname,
eina_strbuf_free(cltd);
}
const Eolian_Class *cl = eolian_class_get_by_file(ifname);
const Eolian_Class *cl = eolian_class_get_by_file(src, ifname);
eo_gen_header_gen(src, cl, buf, legacy);
if (cl || !legacy)
{
@ -352,7 +352,7 @@ _write_source(const Eolian_Unit *src, const char *ofname,
INF("generating source: %s", ofname);
Eina_Strbuf *buf = eina_strbuf_new();
const Eolian_Class *cl = eolian_class_get_by_file(ifname);
const Eolian_Class *cl = eolian_class_get_by_file(src, ifname);
eo_gen_types_source_gen(src, ifname, buf);
eo_gen_source_gen(src, cl, buf);
if (cl || (eot && eina_strbuf_length_get(buf)))
@ -373,7 +373,7 @@ _write_impl(const Eolian_Unit *src, const char *ofname, const char *ifname)
{
INF("generating impl: %s", ofname);
const Eolian_Class *cl = eolian_class_get_by_file(ifname);
const Eolian_Class *cl = eolian_class_get_by_file(src, ifname);
if (!cl)
return EINA_FALSE;

View File

@ -636,7 +636,7 @@ _gen_initializer(const Eolian_Class *cl, Eina_Strbuf *buf)
}
void
eo_gen_source_gen(const Eolian_Unit *src EINA_UNUSED,
eo_gen_source_gen(const Eolian_Unit *src,
const Eolian_Class *cl, Eina_Strbuf *buf)
{
if (!cl)
@ -763,7 +763,7 @@ eo_gen_source_gen(const Eolian_Unit *src EINA_UNUSED,
eina_strbuf_append(buf, ", NULL");
EINA_ITERATOR_FOREACH(itr, iname)
{
const Eolian_Class *icl = eolian_class_get_by_name(iname);
const Eolian_Class *icl = eolian_class_get_by_name(src, iname);
Eina_Stringshare *mname = eolian_class_c_name_get(icl);
eina_strbuf_append_printf(buf, ", %s", mname);
eina_stringshare_del(mname);

View File

@ -2,12 +2,13 @@
#include "docs.h"
static Eina_Strbuf *
_type_generate(const Eolian_Typedecl *tp, Eina_Bool full, Eina_Bool legacy)
_type_generate(const Eolian_Unit *src, const Eolian_Typedecl *tp,
Eina_Bool full, Eina_Bool legacy)
{
char *grp = strdup(eolian_typedecl_full_name_get(tp));
char *p = strrchr(grp, '.');
if (p) *p = '\0';
Eina_Strbuf *buf = eo_gen_docs_full_gen(eolian_typedecl_documentation_get(tp),
Eina_Strbuf *buf = eo_gen_docs_full_gen(src, eolian_typedecl_documentation_get(tp),
grp, 0, legacy);
free(grp);
if (!buf) buf = eina_strbuf_new();
@ -62,7 +63,7 @@ _type_generate(const Eolian_Typedecl *tp, Eina_Bool full, Eina_Bool legacy)
const char *nl = strrchr(eina_strbuf_string_get(buf), '\n');
if (nl)
{
Eina_Strbuf *fbuf = eo_gen_docs_full_gen(fdoc, NULL,
Eina_Strbuf *fbuf = eo_gen_docs_full_gen(src, fdoc, NULL,
strlen(nl), legacy);
if (fbuf)
eina_strbuf_append_printf(buf, " %s",
@ -116,7 +117,7 @@ _type_generate(const Eolian_Typedecl *tp, Eina_Bool full, Eina_Bool legacy)
const char *nl = strrchr(eina_strbuf_string_get(buf), '\n');
if (nl)
{
Eina_Strbuf *fbuf = eo_gen_docs_full_gen(fdoc, NULL,
Eina_Strbuf *fbuf = eo_gen_docs_full_gen(src, fdoc, NULL,
strlen(nl), legacy);
if (fbuf)
eina_strbuf_append_printf(buf, " %s",
@ -140,12 +141,12 @@ _type_generate(const Eolian_Typedecl *tp, Eina_Bool full, Eina_Bool legacy)
}
static Eina_Strbuf *
_var_generate(const Eolian_Variable *vr, Eina_Bool legacy)
_var_generate(const Eolian_Unit *src, const Eolian_Variable *vr, Eina_Bool legacy)
{
char *fn = strdup(eolian_variable_full_name_get(vr));
char *p = strrchr(fn, '.');
if (p) *p = '\0';
Eina_Strbuf *buf = eo_gen_docs_full_gen(eolian_variable_documentation_get(vr),
Eina_Strbuf *buf = eo_gen_docs_full_gen(src, eolian_variable_documentation_get(vr),
fn, 0, legacy);
if (p)
{
@ -183,7 +184,7 @@ _var_generate(const Eolian_Variable *vr, Eina_Bool legacy)
return buf;
}
void eo_gen_types_header_gen(const Eolian_Unit *src EINA_UNUSED,
void eo_gen_types_header_gen(const Eolian_Unit *src,
const char *eof, Eina_Strbuf *buf,
Eina_Bool full, Eina_Bool legacy)
{
@ -200,7 +201,7 @@ void eo_gen_types_header_gen(const Eolian_Unit *src EINA_UNUSED,
if (!vr || eolian_variable_is_extern(vr))
continue;
Eina_Strbuf *vbuf = _var_generate(vr, legacy);
Eina_Strbuf *vbuf = _var_generate(src, vr, legacy);
if (vbuf)
{
eina_strbuf_append(buf, eina_strbuf_string_get(vbuf));
@ -228,7 +229,7 @@ void eo_gen_types_header_gen(const Eolian_Unit *src EINA_UNUSED,
continue;
}
Eina_Strbuf *tbuf = _type_generate(tp, full, legacy);
Eina_Strbuf *tbuf = _type_generate(src, tp, full, legacy);
if (tbuf)
{
eina_strbuf_append(buf, eina_strbuf_string_get(tbuf));
@ -287,10 +288,9 @@ void eo_gen_types_source_gen(const Eolian_Unit *src EINA_UNUSED,
}
}
Eina_Strbuf *eo_gen_class_typedef_gen(const Eolian_Unit *src EINA_UNUSED,
const char *eof)
Eina_Strbuf *eo_gen_class_typedef_gen(const Eolian_Unit *src, const char *eof)
{
const Eolian_Class *cl = eolian_class_get_by_file(eof);
const Eolian_Class *cl = eolian_class_get_by_file(src, eof);
if (!cl)
return NULL;
char *clfn = eo_gen_c_full_name_get(eolian_class_full_name_get(cl));

View File

@ -230,8 +230,8 @@ ffi.cdef [[
Eina_Bool eolian_all_eo_files_parse();
Eina_Bool eolian_all_eot_files_parse();
Eina_Bool eolian_database_validate();
const Eolian_Class *eolian_class_get_by_name(const char *class_name);
const Eolian_Class *eolian_class_get_by_file(const char *file_name);
const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name);
const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name);
const char *eolian_class_file_get(const Eolian_Class *klass);
const char *eolian_class_full_name_get(const Eolian_Class *klass);
const char *eolian_class_name_get(const Eolian_Class *klass);
@ -1008,14 +1008,14 @@ ffi.metatype("Eolian_Event", {
}
})
M.class_get_by_name = function(cname)
local v = eolian.eolian_class_get_by_name(cname)
M.class_get_by_name = function(unit, cname)
local v = eolian.eolian_class_get_by_name(unit, cname)
if v == nil then return nil end
return v
end
M.class_get_by_file = function(fname)
local v = eolian.eolian_class_get_by_file(fname)
M.class_get_by_file = function(unit, fname)
local v = eolian.eolian_class_get_by_file(unit, fname)
if v == nil then return nil end
return v
end

View File

@ -517,22 +517,24 @@ EAPI Eina_Bool eolian_database_validate();
/*
* @brief Gets a class by its name
*
* @param[in] unit the unit to look in
* @param[in] class_name name of the class to get.
* @return the class
*
* @ingroup Eolian
*/
EAPI const Eolian_Class *eolian_class_get_by_name(const char *class_name);
EAPI const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name);
/*
* @brief Gets a class by its filename (name.eo)
*
* @param[in] unit the unit to look in
* @param[in] file_name the filename
* @return the class stored in the file
*
* @ingroup Eolian
*/
EAPI const Eolian_Class *eolian_class_get_by_file(const char *file_name);
EAPI const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name);
/*
* @brief Returns the name of the file containing the given class.

View File

@ -31,7 +31,8 @@ eolian_class_namespaces_get(const Eolian_Class *cl)
}
EAPI const Eolian_Class *
eolian_class_get_by_name(const char *class_name)
eolian_class_get_by_name(const Eolian_Unit *unit EINA_UNUSED,
const char *class_name)
{
if (!_classes) return NULL;
Eina_Stringshare *shr = eina_stringshare_add(class_name);
@ -41,7 +42,8 @@ eolian_class_get_by_name(const char *class_name)
}
EAPI const Eolian_Class *
eolian_class_get_by_file(const char *file_name)
eolian_class_get_by_file(const Eolian_Unit *unit EINA_UNUSED,
const char *file_name)
{
if (!_classesf) return NULL;
Eina_Stringshare *shr = eina_stringshare_add(file_name);

View File

@ -310,7 +310,8 @@ eolian_type_class_get(const Eolian_Type *tp)
EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
if (eolian_type_type_get(tp) != EOLIAN_TYPE_CLASS)
return NULL;
return eolian_class_get_by_name(tp->full_name);
/* FIXME: pass unit properly */
return eolian_class_get_by_name(NULL, tp->full_name);
}
EAPI size_t

View File

@ -1984,7 +1984,8 @@ _inherit_dep(Eo_Lexer *ls, Eina_Strbuf *buf, Eina_Bool check_inherit,
eo_lexer_syntax_error(ls, ebuf);
}
_parse_dep(ls, fname, iname);
const Eolian_Class *dep = eolian_class_get_by_name(iname);
/* FIXME: pass unit properly */
const Eolian_Class *dep = eolian_class_get_by_name(NULL, iname);
if (!dep)
{
char ebuf[PATH_MAX];
@ -2242,7 +2243,8 @@ _get_impl_class(const Eolian_Class *cl, const char *cln)
/* we can do a depth first search, it's easier and doesn't matter
* which part of the inheritance tree we find the class in
*/
const Eolian_Class *fcl = _get_impl_class(eolian_class_get_by_name(s), cln);
/* FIXME: pass unit properly */
const Eolian_Class *fcl = _get_impl_class(eolian_class_get_by_name(NULL, s), cln);
if (fcl)
return fcl;
}

View File

@ -467,7 +467,8 @@ _resolve_event(char *name, const void **data, const void **data2)
return EOLIAN_DOC_REF_INVALID;
*evname++ = '\0';
const Eolian_Class *cl = eolian_class_get_by_name(name);
/* FIXME: pass unit properly */
const Eolian_Class *cl = eolian_class_get_by_name(NULL, name);
if (!cl)
return EOLIAN_DOC_REF_INVALID;
@ -581,7 +582,8 @@ eolian_doc_token_ref_get(const Eolian_Doc_Token *tok, const void **data,
*suffix++ = '\0';
}
const Eolian_Class *cl = eolian_class_get_by_name(name);
/* FIXME: pass unit properly */
const Eolian_Class *cl = eolian_class_get_by_name(NULL, name);
if (!cl)
return EOLIAN_DOC_REF_INVALID;