forked from enlightenment/efl
eolian-cxx: Handle C++ keywords in function names.
When function names are C++ keywords append '_' to it.
This commit is contained in:
parent
82af4fb19d
commit
07b75b9997
|
@ -159,7 +159,7 @@ class_list_all()
|
||||||
inline std::string
|
inline std::string
|
||||||
function_name(Eolian_Function const& func)
|
function_name(Eolian_Function const& func)
|
||||||
{
|
{
|
||||||
return safe_str(::eolian_function_name_get(&func));
|
return keyword_avoid(::eolian_function_name_get(&func));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::string
|
inline std::string
|
||||||
|
|
|
@ -122,4 +122,38 @@ find_replace(std::string const& s_,
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @brief Append '_' if @p key is a C++ keyword.
|
||||||
|
///
|
||||||
|
inline std::string
|
||||||
|
keyword_avoid(std::string const& name)
|
||||||
|
{
|
||||||
|
if (name == "delete" ||
|
||||||
|
name == "throw" ||
|
||||||
|
name == "break" ||
|
||||||
|
name == "friend" ||
|
||||||
|
name == "goto" ||
|
||||||
|
name == "default" ||
|
||||||
|
name == "new" ||
|
||||||
|
name == "auto" ||
|
||||||
|
name == "do" ||
|
||||||
|
name == "sizeof" ||
|
||||||
|
name == "try" ||
|
||||||
|
name == "this" ||
|
||||||
|
name == "virtual" ||
|
||||||
|
name == "typename" ||
|
||||||
|
name == "template")
|
||||||
|
{
|
||||||
|
return name + "_"; // XXX Warn?
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @brief Append '_' if @p key is a C++ keyword.
|
||||||
|
///
|
||||||
|
inline std::string
|
||||||
|
keyword_avoid(const char* name)
|
||||||
|
{
|
||||||
|
return keyword_avoid(safe_str(name));
|
||||||
|
}
|
||||||
|
|
||||||
#endif // EOLIAN_CXX_BIN_SAFE_STRINGS_HH
|
#endif // EOLIAN_CXX_BIN_SAFE_STRINGS_HH
|
||||||
|
|
Loading…
Reference in New Issue