Adds NatSpec to AST for struct definitions.

This commit is contained in:
Marko Veniger
2023-04-18 13:10:21 +02:00
parent f0c0df2d8c
commit 07def48f45
11 changed files with 288 additions and 6 deletions
+7 -3
View File
@@ -709,7 +709,7 @@ private:
bool m_global = false;
};
class StructDefinition: public Declaration, public ScopeOpener
class StructDefinition: public Declaration, public StructurallyDocumented, public ScopeOpener
{
public:
StructDefinition(
@@ -717,9 +717,13 @@ public:
SourceLocation const& _location,
ASTPointer<ASTString> const& _name,
SourceLocation _nameLocation,
std::vector<ASTPointer<VariableDeclaration>> _members
std::vector<ASTPointer<VariableDeclaration>> _members,
ASTPointer<StructuredDocumentation> _documentation
):
Declaration(_id, _location, _name, std::move(_nameLocation)), m_members(std::move(_members)) {}
Declaration(_id, _location, _name, std::move(_nameLocation)),
StructurallyDocumented(std::move(_documentation)),
m_members(std::move(_members))
{}
void accept(ASTVisitor& _visitor) override;
void accept(ASTConstVisitor& _visitor) const override;
+1
View File
@@ -367,6 +367,7 @@ bool ASTJsonExporter::visit(StructDefinition const& _node)
std::vector<pair<string, Json::Value>> attributes = {
make_pair("name", _node.name()),
make_pair("nameLocation", sourceLocationToString(_node.nameLocation())),
make_pair("documentation", _node.documentation() ? toJson(*_node.documentation()) : Json::nullValue),
make_pair("visibility", Declaration::visibilityToString(_node.visibility())),
make_pair("members", toJson(_node.members())),
make_pair("scope", idOrNull(_node.scope()))
+2 -1
View File
@@ -449,7 +449,8 @@ ASTPointer<ASTNode> ASTJsonImporter::createStructDefinition(Json::Value const& _
_node,
memberAsASTString(_node, "name"),
createNameSourceLocation(_node),
members
members,
_node["documentation"].isNull() ? nullptr : createDocumentation(member(_node, "documentation"))
);
}