DocGen: Store expressions for default values
This commit is contained in:
parent
410ca805aa
commit
04e88d067b
|
|
@ -30,6 +30,23 @@ public:
|
||||||
cppast::generate_code(*this, e);
|
cppast::generate_code(*this, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
simpleCodeGenerator(const cppast::cpp_expression& e)
|
||||||
|
{
|
||||||
|
struct dummy_entity : public cppast::cpp_entity
|
||||||
|
{
|
||||||
|
using cpp_entity::cpp_entity;
|
||||||
|
|
||||||
|
cppast::cpp_entity_kind do_get_entity_kind() const noexcept override
|
||||||
|
{
|
||||||
|
return cppast::cpp_entity_kind::unexposed_t;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
dummy_entity dummy("dummy");
|
||||||
|
output output(type_safe::ref(*this), type_safe::ref(dummy), cppast::cpp_access_specifier_kind::cpp_public);
|
||||||
|
cppast::detail::write_expression(output, e);
|
||||||
|
}
|
||||||
|
|
||||||
// return the result
|
// return the result
|
||||||
const std::string& str() const noexcept
|
const std::string& str() const noexcept
|
||||||
{
|
{
|
||||||
|
|
@ -283,8 +300,8 @@ nlohmann::ordered_json buildClass(const std::string& scope, const cppast::cpp_cl
|
||||||
auto& parameterDoc = parameterArray.emplace_back();
|
auto& parameterDoc = parameterArray.emplace_back();
|
||||||
parameterDoc["name"] = parameter.name();
|
parameterDoc["name"] = parameter.name();
|
||||||
parameterDoc["type"] = cppast::to_string(parameter.type());
|
parameterDoc["type"] = cppast::to_string(parameter.type());
|
||||||
//if (const auto& defaultOpt = parameter.default_value())
|
if (const auto& defaultOpt = parameter.default_value())
|
||||||
// parameterDoc["default"] = std::string(simpleCodeGenerator(defaultOpt.value()));
|
parameterDoc["default"] = simpleCodeGenerator(defaultOpt.value()).str();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -313,8 +330,8 @@ nlohmann::ordered_json buildClass(const std::string& scope, const cppast::cpp_cl
|
||||||
auto& parameterDoc = parameterArray.emplace_back();
|
auto& parameterDoc = parameterArray.emplace_back();
|
||||||
parameterDoc["name"] = parameter.name();
|
parameterDoc["name"] = parameter.name();
|
||||||
parameterDoc["type"] = cppast::to_string(parameter.type());
|
parameterDoc["type"] = cppast::to_string(parameter.type());
|
||||||
//if (const auto& defaultOpt = parameter.default_value())
|
if (const auto& defaultOpt = parameter.default_value())
|
||||||
// parameterDoc["default"] = std::string(simpleCodeGenerator(defaultOpt.value()));
|
parameterDoc["default"] = simpleCodeGenerator(defaultOpt.value()).str();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -353,8 +370,8 @@ nlohmann::ordered_json buildClass(const std::string& scope, const cppast::cpp_cl
|
||||||
auto& parameterDoc = parameterArray.emplace_back();
|
auto& parameterDoc = parameterArray.emplace_back();
|
||||||
parameterDoc["name"] = parameter.name();
|
parameterDoc["name"] = parameter.name();
|
||||||
parameterDoc["type"] = cppast::to_string(parameter.type());
|
parameterDoc["type"] = cppast::to_string(parameter.type());
|
||||||
//if (const auto& defaultOpt = parameter.default_value())
|
if (const auto& defaultOpt = parameter.default_value())
|
||||||
// parameterDoc["default"] = std::string(simpleCodeGenerator(defaultOpt.value()));
|
parameterDoc["default"] = simpleCodeGenerator(defaultOpt.value()).str();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -385,6 +402,8 @@ nlohmann::ordered_json buildEnum(const std::string& scope, const cppast::cpp_enu
|
||||||
auto& valueDoc = enumDoc["values"].emplace_back();
|
auto& valueDoc = enumDoc["values"].emplace_back();
|
||||||
valueDoc["name"] = entry.name();
|
valueDoc["name"] = entry.name();
|
||||||
if (const auto& exprOpt = entry.value())
|
if (const auto& exprOpt = entry.value())
|
||||||
|
valueDoc["value"] = simpleCodeGenerator(exprOpt.value()).str();
|
||||||
|
}
|
||||||
|
|
||||||
return enumDoc;
|
return enumDoc;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue