static void
_gen_doc_brief(const char *summary, const char *since, const char *group,
- int indent, Eina_Strbuf *buf, Eina_Bool use_legacy)
+ int indent, Eina_Strbuf *buf, Eina_Bool use_legacy, Eina_Bool is_internal)
{
int curl = 4 + indent;
Eina_Strbuf *wbuf = eina_strbuf_new();
- eina_strbuf_append(buf, "/** ");
+ if (!is_internal)
+ eina_strbuf_append(buf, "/** ");
+ else
+ eina_strbuf_append(buf, "/**\n * @internal\n *\n * ");
curl = _append_section(summary, indent, curl, buf, wbuf, use_legacy);
eina_strbuf_free(wbuf);
curl = _append_since(since, indent, curl, buf);
Eina_Strbuf *buf = eina_strbuf_new();
if (!desc)
- _gen_doc_brief(sum, since, group, indent, buf, use_legacy);
+ _gen_doc_brief(sum, since, group, indent, buf, use_legacy, EINA_FALSE);
else
_gen_doc_full(sum, desc, since, group, indent, buf, use_legacy);
return buf;
Eina_Strbuf *
docs_generate_function(const Eolian_Function *fid, Eolian_Function_Type ftype,
- int indent, Eina_Bool use_legacy)
+ int indent, Eina_Bool use_legacy, Eina_Bool is_internal)
{
const Eolian_Function_Parameter *par = NULL;
const Eolian_Function_Parameter *vpar = NULL;
if (!desc && !par && !vpar && !rdoc && (ftype == EOLIAN_METHOD || !pdoc))
{
_gen_doc_brief(sum ? sum : "No description supplied.", since, group,
- indent, buf, use_legacy);
+ indent, buf, use_legacy, is_internal);
return buf;
}
wbuf = eina_strbuf_new();
eina_strbuf_append(buf, "/**\n");
+ if (is_internal)
+ {
+ curl += _indent_line(buf, indent);
+ eina_strbuf_append(buf, " * @internal\n *\n");
+ curl += sizeof(" * @internal \n *\n");
+ }
curl += _indent_line(buf, indent);
eina_strbuf_append(buf, " * @brief ");
curl += sizeof(" * @brief ") - 1;
* @return A documentation comment
*
*/
-Eina_Strbuf *docs_generate_function(const Eolian_Function *fid, Eolian_Function_Type ftype, int indent, Eina_Bool use_legacy);
+Eina_Strbuf *docs_generate_function(const Eolian_Function *fid, Eolian_Function_Type ftype, int indent, Eina_Bool use_legacy, Eina_Bool is_internal);
#endif
eolian_function_documentation_get(func, ftype);
if (hasnewdocs)
{
- Eina_Strbuf *dbuf = docs_generate_function(func, ftype, 0, EINA_FALSE);
+ Eina_Bool is_internal = eolian_function_is_internal(func);
+ Eina_Strbuf *dbuf = docs_generate_function(func, ftype, 0, EINA_FALSE, is_internal);
eina_strbuf_append(str_func, eina_strbuf_string_get(dbuf));
eina_strbuf_append_char(str_func, '\n');
eina_strbuf_free(dbuf);
eolian_function_documentation_get(funcid, ftype);
if (hasnewdocs)
{
- Eina_Strbuf *dbuf = docs_generate_function(funcid, ftype, 0, EINA_TRUE);
+ Eina_Bool is_internal = eolian_function_is_internal(funcid);
+ Eina_Strbuf *dbuf = docs_generate_function(funcid, ftype, 0, EINA_TRUE, is_internal);
+
eina_strbuf_append_char(fbody, '\n');
eina_strbuf_append(fbody, eina_strbuf_string_get(dbuf));
eina_strbuf_append_char(fbody, '\n');
EAPI Eina_Bool eolian_function_is_beta(const Eolian_Function *function_id);
/*
+ * @brief Get whether a function is internal.
+ *
+ * @param[in] function_id Id of the function
+ * @return EINA_TRUE and EINA_FALSE respectively
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Bool eolian_function_is_internal(const Eolian_Function *function_id);
+
+/*
* @brief Indicates if a function is a constructing function of a given class.
*
* @param[in] klass the class
return fid->is_beta;
}
+EAPI Eina_Bool
+eolian_function_is_internal(const Eolian_Function *fid)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
+ return fid->is_internal;
+}
+
EAPI Eina_Bool eolian_function_is_implemented(
const Eolian_Function *function_id, Eolian_Function_Type func_type,
const Eolian_Class *klass)
KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), KWAT(nullable), \
KWAT(optional), KWAT(out), KWAT(private), KWAT(property), \
KWAT(protected), KWAT(virtual), KWAT(warn_unused), \
+ KWAT(internal), \
\
KW(byte), KW(ubyte), KW(char), KW(short), KW(ushort), KW(int), KW(uint), \
KW(long), KW(ulong), KW(llong), KW(ullong), \
void eo_lexer_context_restore(Eo_Lexer *ls);
void eo_lexer_context_clear (Eo_Lexer *ls);
-#endif /* __EO_LEXER_H__ */
\ No newline at end of file
+#endif /* __EO_LEXER_H__ */
Eina_Bool has_get = EINA_FALSE, has_set = EINA_FALSE,
has_keys = EINA_FALSE, has_values = EINA_FALSE,
has_protected = EINA_FALSE, has_class = EINA_FALSE,
- has_c_only = EINA_FALSE, has_beta = EINA_FALSE;
+ has_c_only = EINA_FALSE, has_beta = EINA_FALSE,
+ has_internal = EINA_FALSE;
prop = calloc(1, sizeof(Eolian_Function));
prop->klass = ls->tmp.kls;
prop->type = EOLIAN_UNRESOLVED;
prop->is_beta = EINA_TRUE;
eo_lexer_get(ls);
break;
+ case KW_at_internal:
+ CASE_LOCK(ls, internal, "internal qualifier");
+ prop->is_internal = EINA_TRUE;
+ eo_lexer_get(ls);
+ break;
default:
goto body;
}
has_return = EINA_FALSE, has_legacy = EINA_FALSE,
has_protected = EINA_FALSE, has_class = EINA_FALSE,
has_eo = EINA_FALSE, has_c_only = EINA_FALSE,
- has_beta = EINA_FALSE;
+ has_beta = EINA_FALSE, has_internal = EINA_FALSE;
meth = calloc(1, sizeof(Eolian_Function));
meth->klass = ls->tmp.kls;
meth->type = EOLIAN_METHOD;
meth->is_beta = EINA_TRUE;
eo_lexer_get(ls);
break;
+ case KW_at_internal:
+ CASE_LOCK(ls, internal, "internal qualifier");
+ meth->is_internal = EINA_TRUE;
+ eo_lexer_get(ls);
+ break;
default:
goto body;
}
Eina_Bool is_class :1;
Eina_Bool is_c_only :1;
Eina_Bool is_beta :1;
+ Eina_Bool is_internal :1;
Eina_List *ctor_of;
Eolian_Class *klass;
};