add a mode to list only-legacy names
This commit is contained in:
parent
158f4cc690
commit
7f8e6528fe
|
@ -3,6 +3,7 @@ local getopt = require("getopt")
|
|||
local eou = require("utils.eolian_extras")
|
||||
|
||||
local exit = false
|
||||
local legacy = false
|
||||
local pargs
|
||||
|
||||
getopt.parse {
|
||||
|
@ -14,7 +15,8 @@ path. If no path is specified, system-wide eo files are used instead.]],
|
|||
descs = {
|
||||
{ "h", "help", false, help = "Show this message.",
|
||||
callback = getopt.help_cb(io.stdout)
|
||||
}
|
||||
},
|
||||
{ "l", "legacy", false, help = "Print only legacy names intead." }
|
||||
},
|
||||
error_cb = function(parser, msg)
|
||||
io.stderr:write(msg, "\n")
|
||||
|
@ -25,6 +27,9 @@ path. If no path is specified, system-wide eo files are used instead.]],
|
|||
if opts["h"] then
|
||||
exit = true
|
||||
end
|
||||
if opts["l"] then
|
||||
legacy = true
|
||||
end
|
||||
pargs = args
|
||||
end
|
||||
}
|
||||
|
@ -45,17 +50,17 @@ eos:all_eot_files_parse()
|
|||
eos:all_eo_files_parse()
|
||||
|
||||
print("API functions:\n")
|
||||
for i, n in ipairs(eou.get_c_functions(eos)) do
|
||||
for i, n in ipairs(eou.get_c_functions(eos, legacy)) do
|
||||
print(n)
|
||||
end
|
||||
|
||||
print("\nEvents:\n")
|
||||
for i, n in ipairs(eou.get_c_events(eos)) do
|
||||
for i, n in ipairs(eou.get_c_events(eos, legacy)) do
|
||||
print(n)
|
||||
end
|
||||
|
||||
print("\nFunction pointers:\n")
|
||||
for i, n in ipairs(eou.get_c_function_pointers(eos)) do
|
||||
for i, n in ipairs(eou.get_c_function_pointers(eos, legacy)) do
|
||||
print(n)
|
||||
end
|
||||
|
||||
|
|
|
@ -57,28 +57,43 @@ M.new = function()
|
|||
return eolian.new()
|
||||
end
|
||||
|
||||
M.get_c_functions = function(eos)
|
||||
local f_is_beta = function(fn)
|
||||
if legacy then
|
||||
return false
|
||||
end
|
||||
return fn:is_beta()
|
||||
end
|
||||
|
||||
M.get_c_functions = function(eos, only_legacy)
|
||||
only_legacy = not not only_legacy
|
||||
local ret = {}
|
||||
for cl in eos:classes_get() do
|
||||
local fntp = eolian.function_type
|
||||
for fn in cl:functions_get(fntp.METHOD) do
|
||||
ret[#ret + 1] = fn:full_c_name_get(fntp.METHOD, false)
|
||||
if not only_legacy or not f_is_beta(fn) then
|
||||
ret[#ret + 1] = fn:full_c_name_get(fntp.METHOD, only_legacy)
|
||||
end
|
||||
end
|
||||
for fn in cl:functions_get(fntp.PROPERTY) do
|
||||
local tp = fn:type_get()
|
||||
if tp == fntp.PROPERTY then
|
||||
ret[#ret + 1] = fn:full_c_name_get(fntp.PROP_GET, false)
|
||||
ret[#ret + 1] = fn:full_c_name_get(fntp.PROP_SET, false)
|
||||
else
|
||||
ret[#ret + 1] = fn:full_c_name_get(tp, false)
|
||||
if not only_legacy or not f_is_beta(fn) then
|
||||
local tp = fn:type_get()
|
||||
if tp == fntp.PROPERTY then
|
||||
ret[#ret + 1] = fn:full_c_name_get(fntp.PROP_GET, only_legacy)
|
||||
ret[#ret + 1] = fn:full_c_name_get(fntp.PROP_SET, only_legacy)
|
||||
else
|
||||
ret[#ret + 1] = fn:full_c_name_get(tp, only_legacy)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
M.get_c_events = function(eos)
|
||||
M.get_c_events = function(eos, only_legacy)
|
||||
local ret = {}
|
||||
if only_legacy then
|
||||
return ret
|
||||
end
|
||||
for cl in eos:classes_get() do
|
||||
for ev in cl:events_get() do
|
||||
ret[#ret + 1] = ev:c_name_get()
|
||||
|
@ -94,8 +109,8 @@ local full_name_get = function(obj)
|
|||
return obj:name_get()
|
||||
end
|
||||
|
||||
M.get_c_function_pointers = function(eos)
|
||||
if legacy then
|
||||
M.get_c_function_pointers = function(eos, only_legacy)
|
||||
if legacy or only_legacy then
|
||||
-- no function pointer support in pre-state api
|
||||
return {}
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue