forked from enlightenment/efl
eolian: pass unit to class get_by_name/file
This commit is contained in:
parent
83bf422159
commit
45a73a0878
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue