aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/ast/ASTAnnotations.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsolidity/ast/ASTAnnotations.h')
-rw-r--r--libsolidity/ast/ASTAnnotations.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/libsolidity/ast/ASTAnnotations.h b/libsolidity/ast/ASTAnnotations.h
index d112b1ef..094a178e 100644
--- a/libsolidity/ast/ASTAnnotations.h
+++ b/libsolidity/ast/ASTAnnotations.h
@@ -41,13 +41,26 @@ struct ASTAnnotation
virtual ~ASTAnnotation() {}
};
+struct DocTag
+{
+ std::string content; ///< The text content of the tag.
+ std::string paramName; ///< Only used for @param, stores the parameter name.
+};
+
+struct DocumentedAnnotation
+{
+ virtual ~DocumentedAnnotation() {}
+ /// Mapping docstring tag name -> content.
+ std::multimap<std::string, DocTag> docTags;
+};
+
struct TypeDeclarationAnnotation: ASTAnnotation
{
/// The name of this type, prefixed by proper namespaces if globally accessible.
std::string canonicalName;
};
-struct ContractDefinitionAnnotation: TypeDeclarationAnnotation
+struct ContractDefinitionAnnotation: TypeDeclarationAnnotation, DocumentedAnnotation
{
/// Whether all functions are implemented.
bool isFullyImplemented = true;
@@ -59,6 +72,18 @@ struct ContractDefinitionAnnotation: TypeDeclarationAnnotation
std::set<ContractDefinition const*> contractDependencies;
};
+struct FunctionDefinitionAnnotation: ASTAnnotation, DocumentedAnnotation
+{
+};
+
+struct EventDefinitionAnnotation: ASTAnnotation, DocumentedAnnotation
+{
+};
+
+struct ModifierDefinitionAnnotation: ASTAnnotation, DocumentedAnnotation
+{
+};
+
struct VariableDeclarationAnnotation: ASTAnnotation
{
/// Type of variable (type of identifier referencing this variable).