Bindings: Don't generate docs for private symbols, mark static symbols.
This commit is contained in:
parent
9b388cd239
commit
984c0a2cef
@ -129,6 +129,8 @@ function parser_hook(a_Code)
|
|||||||
local curr = classContainer.curr
|
local curr = classContainer.curr
|
||||||
if (curr.n and (curr.n > 0)) then
|
if (curr.n and (curr.n > 0)) then
|
||||||
curr[curr.n].next_DoxyComment = g_ForwardDoxyComments[tonumber(comment:sub(2, -2))]
|
curr[curr.n].next_DoxyComment = g_ForwardDoxyComments[tonumber(comment:sub(2, -2))]
|
||||||
|
else
|
||||||
|
curr.first_child_DoxyComment = g_ForwardDoxyComments[tonumber(comment:sub(2, -2))]
|
||||||
end
|
end
|
||||||
return strsub(a_Code, e + 1)
|
return strsub(a_Code, e + 1)
|
||||||
end
|
end
|
||||||
@ -368,6 +370,9 @@ local function outputClassFunctionDocs(a_File, a_Class, a_Functions)
|
|||||||
a_File:write("\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType = \"", ret.Type, "\",\n\t\t\t\t\t\t},\n")
|
a_File:write("\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType = \"", ret.Type, "\",\n\t\t\t\t\t\t},\n")
|
||||||
end
|
end
|
||||||
a_File:write("\t\t\t\t\t},\n")
|
a_File:write("\t\t\t\t\t},\n")
|
||||||
|
if (desc.IsStatic) then
|
||||||
|
a_File:write("\t\t\t\t\tIsStatic = true,\n")
|
||||||
|
end
|
||||||
if (desc.DoxyComment) then
|
if (desc.DoxyComment) then
|
||||||
a_File:write("\t\t\t\t\tDesc = ", string.format("%q", desc.DoxyComment), ",\n")
|
a_File:write("\t\t\t\t\tDesc = ", string.format("%q", desc.DoxyComment), ",\n")
|
||||||
end
|
end
|
||||||
@ -577,9 +582,15 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Recursively applies the next_DoxyComment member to the next item in the container
|
--- Recursively applies the next_DoxyComment member to the next item, and first_child_DoxyComment to first child item in the container.
|
||||||
-- a_Container is the ToLua++'s table potentially containing children as its array members
|
-- a_Container is the ToLua++'s table potentially containing children as its array members
|
||||||
local function applyNextDoxyComments(a_Container)
|
local function applyNextDoxyComments(a_Container)
|
||||||
|
-- Apply the DoxyComment to the first child, if appropriate:
|
||||||
|
if (a_Container[1] and a_Container.first_child_DoxyComment) then
|
||||||
|
a_Container[1].DoxyComment = a_Container.first_child_DoxyComment
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Apply each child's next_DoxyComment to the actual next child:
|
||||||
local i = 1
|
local i = 1
|
||||||
while (a_Container[i]) do
|
while (a_Container[i]) do
|
||||||
if (a_Container[i].next_DoxyComment) then
|
if (a_Container[i].next_DoxyComment) then
|
||||||
@ -613,7 +624,10 @@ local function genPackageDocs(a_Self)
|
|||||||
local i = 1
|
local i = 1
|
||||||
local filenames = {}
|
local filenames = {}
|
||||||
while (a_Self[i]) do
|
while (a_Self[i]) do
|
||||||
if (a_Self[i].genDocs) then
|
if (
|
||||||
|
a_Self[i]:check_public_access() and -- Do not export private and protected members
|
||||||
|
a_Self[i].genDocs
|
||||||
|
) then
|
||||||
a_Self[i]:genDocs(filenames)
|
a_Self[i]:genDocs(filenames)
|
||||||
end
|
end
|
||||||
i = i + 1
|
i = i + 1
|
||||||
@ -665,7 +679,10 @@ local function genClassDocs(a_Self, a_Filenames)
|
|||||||
local variables = {}
|
local variables = {}
|
||||||
local constants = {}
|
local constants = {}
|
||||||
while (a_Self[i]) do
|
while (a_Self[i]) do
|
||||||
if (a_Self[i].genMemberDocs) then
|
if (
|
||||||
|
a_Self[i]:check_public_access() and -- Don't export private and protected members
|
||||||
|
a_Self[i].genMemberDocs
|
||||||
|
) then
|
||||||
a_Self[i]:genMemberDocs(functions, variables, constants)
|
a_Self[i]:genMemberDocs(functions, variables, constants)
|
||||||
end
|
end
|
||||||
i = i + 1
|
i = i + 1
|
||||||
@ -747,6 +764,10 @@ local function genFunctionMemberDocs(a_Self, a_Functions, a_Variables, a_Constan
|
|||||||
Parameters = parseFunctionParameters(a_Self),
|
Parameters = parseFunctionParameters(a_Self),
|
||||||
Returns = parseFunctionReturns(a_Self),
|
Returns = parseFunctionReturns(a_Self),
|
||||||
}
|
}
|
||||||
|
local _, _, hasStatic = string.find(a_Self.mod, "^%s*(static)")
|
||||||
|
if (hasStatic) then
|
||||||
|
desc.IsStatic = true
|
||||||
|
end
|
||||||
table.insert(fn, desc)
|
table.insert(fn, desc)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -805,6 +826,15 @@ end
|
|||||||
-- a_Package is ToLua++'s classPackage object
|
-- a_Package is ToLua++'s classPackage object
|
||||||
function pre_output_hook(a_Package)
|
function pre_output_hook(a_Package)
|
||||||
OutputLuaStateHelpers(a_Package)
|
OutputLuaStateHelpers(a_Package)
|
||||||
|
|
||||||
|
-- Generate the documentation:
|
||||||
|
-- (must generate documentation before ToLua++ writes the bindings, because "static" information is lost at that point)
|
||||||
|
local isSuccess, msg = generateDocs(a_Package)
|
||||||
|
if not(isSuccess) then
|
||||||
|
print("API docs haven't been generated due to an error: " .. (msg or "<no message>"))
|
||||||
|
else
|
||||||
|
print("API docs have been generated.");
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -815,15 +845,7 @@ end
|
|||||||
-- Called by ToLua++ after writing its generated files.
|
-- Called by ToLua++ after writing its generated files.
|
||||||
-- a_Package is ToLua++'s classPackage object
|
-- a_Package is ToLua++'s classPackage object
|
||||||
function post_output_hook(a_Package)
|
function post_output_hook(a_Package)
|
||||||
-- Generate the documentation:
|
|
||||||
local isSuccess, msg = generateDocs(a_Package)
|
|
||||||
if not(isSuccess) then
|
|
||||||
print("Lua bindings have been generated.")
|
print("Lua bindings have been generated.")
|
||||||
print("API docs haven't been generated due to an error: " .. (msg or "<no message>"))
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
print("Lua bindings and docs have been generated.")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -855,7 +877,7 @@ function preprocess_hook(a_Package)
|
|||||||
g_BackwardDoxyComments.n = n
|
g_BackwardDoxyComments.n = n
|
||||||
return "\19" .. n .."\20\n"
|
return "\19" .. n .."\20\n"
|
||||||
end
|
end
|
||||||
)
|
) -- Replace ///< comments with an ID into a lookup table wrapped in DC3 and DC4
|
||||||
local f = io.open("code_out.cpp", "wb")
|
local f = io.open("code_out.cpp", "wb")
|
||||||
f:write(a_Package.code)
|
f:write(a_Package.code)
|
||||||
f:close()
|
f:close()
|
||||||
|
Loading…
Reference in New Issue
Block a user