(c/cpp) Add return field for non primitive types (#22)
This commit is contained in:
@@ -46,6 +46,11 @@ local c_function_extractor = function(node)
|
|||||||
{ retrieve = "first", node_type = "return_statement", extract = true },
|
{ retrieve = "first", node_type = "return_statement", extract = true },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
retrieve = "first",
|
||||||
|
node_type = "type_identifier",
|
||||||
|
extract = true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
retrieve = "first",
|
retrieve = "first",
|
||||||
node_type = "primitive_type",
|
node_type = "primitive_type",
|
||||||
@@ -72,8 +77,10 @@ local c_function_extractor = function(node)
|
|||||||
if res.return_statement then
|
if res.return_statement then
|
||||||
-- function implementation
|
-- function implementation
|
||||||
return res.return_statement
|
return res.return_statement
|
||||||
elseif res.function_declarator and res.primitive_type then
|
elseif res.function_declarator and (res.primitive_type or res.type_identifier) then
|
||||||
if res.primitive_type[1] ~= "void" or res.pointer_declarator then
|
if res.type_identifier then
|
||||||
|
return res.type_identifier
|
||||||
|
elseif res.primitive_type[1] ~= "void" or res.pointer_declarator then
|
||||||
-- function prototype
|
-- function prototype
|
||||||
return res.primitive_type
|
return res.primitive_type
|
||||||
end
|
end
|
||||||
@@ -82,9 +89,14 @@ local c_function_extractor = function(node)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if node:type() == "template_declaration" then
|
||||||
|
res.tparam = res.type_identifier
|
||||||
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
parameters = res.identifier,
|
parameters = res.identifier,
|
||||||
type_identifier = res.type_identifier,
|
type_identifier = res.type_identifier,
|
||||||
|
tparam = res.tparam,
|
||||||
return_statement = has_return_statement(),
|
return_statement = has_return_statement(),
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@@ -143,7 +155,7 @@ return {
|
|||||||
{ nil, "/**" },
|
{ nil, "/**" },
|
||||||
{ nil, " * @brief $1" },
|
{ nil, " * @brief $1" },
|
||||||
{ nil, " *" },
|
{ nil, " *" },
|
||||||
{ "type_identifier", " * @tparam %s $1" },
|
{ "tparam", " * @tparam %s $1" },
|
||||||
{ "parameters", " * @param %s $1" },
|
{ "parameters", " * @param %s $1" },
|
||||||
{ "return_statement", " * @return $1" },
|
{ "return_statement", " * @return $1" },
|
||||||
{ nil, " */" },
|
{ nil, " */" },
|
||||||
|
|||||||
Reference in New Issue
Block a user