q66 pushed a commit to branch master. http://git.enlightenment.org/tools/edocgen.git/commit/?id=c6e4a1f0758f17ec864c2d09b465ae7c16aba868
commit c6e4a1f0758f17ec864c2d09b465ae7c16aba868 Author: Daniel Kolesa <[email protected]> Date: Wed Oct 9 13:20:44 2019 +0200 make generation work again --- docgen/doc.lua | 4 +-- docgen/eolian_utils.lua | 94 +++++++++++++++++-------------------------------- docgen/stats.lua | 2 +- gendoc.lua | 20 +++-------- templates/event.lua | 6 ++-- 5 files changed, 41 insertions(+), 85 deletions(-) diff --git a/docgen/doc.lua b/docgen/doc.lua index 8b5a5a0..6ca6444 100644 --- a/docgen/doc.lua +++ b/docgen/doc.lua @@ -246,7 +246,6 @@ M.ref_groups_get = function(eos) local structs = eos:structs_get():to_array() local enums = eos:enums_get():to_array() local consts = eos:constants_get():to_array() - local globals = eos:globals_get():to_array() local grouped = {} local groups = {} @@ -286,8 +285,7 @@ M.ref_groups_get = function(eos) nspaces_filter(aliases, ns), nspaces_filter(structs, ns), nspaces_filter(enums, ns), - nspaces_filter(consts, ns), - nspaces_filter(globals, ns) + nspaces_filter(consts, ns) } end diff --git a/docgen/eolian_utils.lua b/docgen/eolian_utils.lua index 5680b86..94c1246 100644 --- a/docgen/eolian_utils.lua +++ b/docgen/eolian_utils.lua @@ -107,7 +107,7 @@ end M.type_cstr_get = function(tp, suffix) tp = tp or "void" - local ct = (type(tp) == "string") and tp or tp:c_type_get(eolian.c_type_type.DEFAULT) + local ct = (type(tp) == "string") and tp or tp:c_type_get() if not suffix then return ct end @@ -132,10 +132,6 @@ local wrap_type_attrs = function(tp, str) --if tp:is_own() then -- str = "own(" .. str .. ")" --end - local ffunc = tp:free_func_get() - if ffunc then - str = "free(" .. str .. ", " .. ffunc .. ")" - end if tp:is_ptr() then str = "ptr(" .. str .. ")" end @@ -150,7 +146,8 @@ serialize_type = function(tp) return wrap_type_attrs(tp, "void") elseif tpt == eolian.type_type.UNDEFINED then return wrap_type_attrs(tp, "__undefined_type") - elseif tpt == eolian.type_type.REGULAR or tpt == eolian.type_type.CLASS then + elseif tpt == eolian.type_type.REGULAR or tpt == eolian.type_type.CLASS + or tpt == eolian.type_type.ERROR then local stp = tp:base_type_get() if stp then local stypes = {} @@ -320,17 +317,13 @@ end serialize_var = function(var) local buf = {} - if var:type_get() == eolian.variable_type.GLOBAL then - buf[#buf + 1] = "var " - else - buf[#buf + 1] = "const " - end + buf[#buf + 1] = "const " if var:is_extern() then buf[#buf + 1] = "@extern " end buf[#buf + 1] = var:name_get() buf[#buf + 1] = ": " - buf[#buf + 1] = serialize_type(var:base_type_get()) + buf[#buf + 1] = serialize_type(var:type_get()) local val = var:value_get() if val then buf[#buf + 1] = " = " @@ -342,40 +335,19 @@ end serialize_var_c = function(var, ns) local buf = {} - local bt = var:base_type_get() + local bt = var:type_get() local fulln = var:name_get():gsub("%.", "_"):upper() keyref.add(fulln, ns, "c") - if var:type_get() == eolian.variable_type.GLOBAL then - local ts = bt:c_type_get(eolian.c_type_type.DEFAULT) - buf[#buf + 1] = ts - if ts:sub(#ts) ~= "*" then - buf[#buf + 1] = " " - end - buf[#buf + 1] = fulln - local val = var:value_get() - if val then - buf[#buf + 1] = " = " - local vt = val:eval_type(bt) - local lv = vt:to_literal() - local sv = val:serialize() - buf[#buf + 1] = lv - if lv ~= sv then - buf[#buf + 1] = "/* " .. sv .. " */" - end - end - buf[#buf + 1] = ";" - else - buf[#buf + 1] = "#define " - buf[#buf + 1] = fulln - buf[#buf + 1] = " " - local val = var:value_get() - local vt = val:eval_type(bt) - local lv = vt:to_literal() - local sv = val:serialize() - buf[#buf + 1] = lv - if lv ~= sv then - buf[#buf + 1] = "/* " .. sv .. " */" - end + buf[#buf + 1] = "#define " + buf[#buf + 1] = fulln + buf[#buf + 1] = " " + local val = var:value_get() + local vt = val:eval() + local lv = vt:to_literal() + local sv = val:serialize() + buf[#buf + 1] = lv + if lv ~= sv then + buf[#buf + 1] = "/* " .. sv .. " */" end return table.concat(buf) end @@ -383,7 +355,7 @@ end local sert = { [eolian.object_type.TYPE] = serialize_type, [eolian.object_type.TYPEDECL] = serialize_tdecl, - [eolian.object_type.VARIABLE] = serialize_var + [eolian.object_type.CONSTANT] = serialize_var } M.obj_serialize = function(obj) @@ -394,7 +366,7 @@ end local sertc = { [eolian.object_type.TYPEDECL] = serialize_tdecl_c, - [eolian.object_type.VARIABLE] = serialize_var_c + [eolian.object_type.CONSTANT] = serialize_var_c } M.obj_serialize_c = function(obj, ns) @@ -406,11 +378,11 @@ end local gen_cparam = function(par, out) local part = par:type_get() out = out or (par:direction_get() == eolian.parameter_dir.OUT) - local tstr = part:c_type_get(eolian.c_type_type.DEFAULT) + local tstr = part:c_type_get() if out then tstr = M.type_cstr_get(tstr, "*") end - return M.type_cstr_get(tstr, par:name_get()) + return M.type_cstr_get(tstr, par:short_name_get()) end local get_func_csig_part = function(cn, tp) @@ -428,8 +400,8 @@ M.function_serialize_c = function(f, ftype) local rtype = f:return_type_get(ftype) local fparam = "Eo *obj" - if f:is_class() then - fparam = "Efl_Class *klass" + if f:is_static() then + fparam = nil elseif f:is_const() or ftype == eolian.function_type.PROP_GET then fparam = "const Eo *obj" end @@ -440,7 +412,9 @@ M.function_serialize_c = function(f, ftype) for i = 1, #pars do pars[i] = gen_cparam(pars[i]) end - table.insert(pars, 1, fparam); + if fparam then + table.insert(pars, 1, fparam); + end return cnrt .. "(" .. table.concat(pars, ", ") .. ");" end @@ -456,7 +430,9 @@ M.function_serialize_c = function(f, ftype) for i, par in ipairs(vals) do pars[#pars + 1] = gen_cparam(par) end - table.insert(pars, 1, fparam); + if fparam then + table.insert(pars, 1, fparam); + end return cnrt .. "(" .. table.concat(pars, ", ") .. ");" end @@ -502,8 +478,8 @@ local gen_func_namesig = function(fn, cl, buf, isprop, isget, isset) buf[#buf + 1] = "@protected " end end - if fn:is_class() then - buf[#buf + 1] = "@class " + if fn:is_static() then + buf[#buf + 1] = "@static " end if fn:is_const() then buf[#buf + 1] = "@const " @@ -525,12 +501,6 @@ local gen_func_param = function(fp, buf, nodir) buf[#buf + 1] = dval:serialize() buf[#buf + 1] = ")" end - if fp:is_nonull() then - buf[#buf + 1] = " @nonull" - end - if fp:is_nullable() then - buf[#buf + 1] = " @nullable" - end if fp:is_optional() then buf[#buf + 1] = " @optional" end @@ -551,8 +521,8 @@ local gen_func_return = function(fp, ftype, buf, indent) buf[#buf + 1] = dval:serialize() buf[#buf + 1] = ")" end - if fp:return_is_warn_unused(ftype) then - buf[#buf + 1] = " @warn_unused" + if not fp:return_allow_unused(ftype) then + buf[#buf + 1] = " @no_unused" end buf[#buf + 1] = ";\n" end diff --git a/docgen/stats.lua b/docgen/stats.lua index a7a57af..123a987 100644 --- a/docgen/stats.lua +++ b/docgen/stats.lua @@ -156,7 +156,7 @@ M.check_method = function(fn, cl) end for p in fn:parameters_get() do if not p:documentation_get() then - print_missing(fulln .. "." .. p:name_get(), "method parameter") + print_missing(fulln .. "." .. p:short_name_get(), "method parameter") stat_incr("param", true) else stat_incr("param", false) diff --git a/gendoc.lua b/gendoc.lua index 6861cc8..2824cd4 100644 --- a/gendoc.lua +++ b/gendoc.lua @@ -55,7 +55,7 @@ local build_reftable = function(f, title, t) f:write_table({ title, "Brief description" }, nt) end -local build_ref_group = function(f, ns, classes, ifaces, mixins, aliases, structs, enums, consts, globals) +local build_ref_group = function(f, ns, classes, ifaces, mixins, aliases, structs, enums, consts) f:write_h(ns, 2) build_reftable(f, "Classes", classes) @@ -66,7 +66,6 @@ local build_ref_group = function(f, ns, classes, ifaces, mixins, aliases, struct build_reftable(f, "Structures", structs) build_reftable(f, "Enums", enums) build_reftable(f, "Constants", consts) - build_reftable(f, "Globals", globals) f:write_nl() end @@ -153,9 +152,9 @@ local write_scope = function(f, func) [eolian.object_scope.PROTECTED] = "protected", [eolian.object_scope.PRIVATE] = "private" } - if func:is_class() then + if func:is_static() then f:write_raw(" ") - f:write_m("class") + f:write_m("static") end if func:type_get() == eolian.function_type.PROPERTY then local ft1, ft2 = ftt[func:scope_get(eolian.function_type.PROP_GET)], @@ -714,7 +713,7 @@ local build_stats_keyref = function() end end for ev in cl:events_get() do - keyref.add(ev:c_name_get(), eoutils.event_nspaces_get(ev, cl), "c") + keyref.add(ev:c_macro_get(), eoutils.event_nspaces_get(ev, cl), "c") end end for tp in eos:aliases_get() do @@ -729,9 +728,6 @@ local build_stats_keyref = function() for v in eos:constants_get() do stats.check_constant(v) end - for v in eos:globals_get() do - stats.check_global(v) - end end local build_typedecls = function() @@ -766,14 +762,6 @@ local build_variables = function() } ) end - - for v in eos:globals_get() do - render_template( - "variable", eoutils.obj_nspaces_get(v), v:name_get(), { - var_obj = v, var_is_constant = false - } - ) - end end local scan_directory = function(dir) diff --git a/templates/event.lua b/templates/event.lua index 7e596f9..c04ce6e 100644 --- a/templates/event.lua +++ b/templates/event.lua @@ -4,7 +4,7 @@ local eoutils = require("docgen.eolian_utils") local M = {} M.example_get = function(ev) - local evcn = ev:c_name_get() + local evcn = ev:c_macro_get() local evcnl = evcn:lower() local dtype = "Data *" @@ -30,7 +30,7 @@ M.example_get = function(ev) end M.signature_get = function(ev) - local buf = { ev:name_get() } + local buf = { ev:short_name_get() } if ev:scope_get() == eolian.object_scope.PRIVATE then buf[#buf + 1] = " @private" @@ -60,7 +60,7 @@ M.signature_get = function(ev) end M.c_signature_get = function(ev) - local csbuf = { ev:c_name_get(), "(" } + local csbuf = { ev:c_macro_get(), "(" } csbuf[#csbuf + 1] = eoutils.type_cstr_get(ev:type_get()) --
