diff options
author | chriseth <c@ethdev.com> | 2015-10-26 22:13:36 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-10-26 22:24:36 +0800 |
commit | b4f561680a2a5169d1245271245e2b71822cb73a (patch) | |
tree | 6e3acecc9bbe825400e4297a32ff641df27d1943 /libsolidity/ast/ASTAnnotations.h | |
parent | d6e77ce0e1da577e5f2c000f89b4fba3505d84a0 (diff) | |
download | dexon-solidity-b4f561680a2a5169d1245271245e2b71822cb73a.tar.gz dexon-solidity-b4f561680a2a5169d1245271245e2b71822cb73a.tar.zst dexon-solidity-b4f561680a2a5169d1245271245e2b71822cb73a.zip |
Store docstrings in AST annotations.
Diffstat (limited to 'libsolidity/ast/ASTAnnotations.h')
-rw-r--r-- | libsolidity/ast/ASTAnnotations.h | 27 |
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). |