diff options
author | chriseth <c@ethdev.com> | 2015-12-10 00:35:20 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-12-10 02:21:02 +0800 |
commit | f8228e8ab116799a1b28ea9cbb01fdd7342b395c (patch) | |
tree | 182796217c88cdfa49b2dedf3c192f75dd7a8052 /libsolidity/ast | |
parent | 7cb7818ceaf8f2e50cdd66b33a4e0d17c2a0e879 (diff) | |
download | dexon-solidity-f8228e8ab116799a1b28ea9cbb01fdd7342b395c.tar.gz dexon-solidity-f8228e8ab116799a1b28ea9cbb01fdd7342b395c.tar.zst dexon-solidity-f8228e8ab116799a1b28ea9cbb01fdd7342b395c.zip |
Relative paths in import directives.
Diffstat (limited to 'libsolidity/ast')
-rw-r--r-- | libsolidity/ast/AST.cpp | 7 | ||||
-rw-r--r-- | libsolidity/ast/AST.h | 1 | ||||
-rw-r--r-- | libsolidity/ast/ASTAnnotations.h | 6 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libsolidity/ast/AST.cpp b/libsolidity/ast/AST.cpp index 6006d441..701202f9 100644 --- a/libsolidity/ast/AST.cpp +++ b/libsolidity/ast/AST.cpp @@ -56,6 +56,13 @@ Error ASTNode::createTypeError(string const& _description) const return Error(Error::Type::TypeError) << errinfo_sourceLocation(location()) << errinfo_comment(_description); } +ImportAnnotation& ImportDirective::annotation() const +{ + if (!m_annotation) + m_annotation = new ImportAnnotation(); + return static_cast<ImportAnnotation&>(*m_annotation); +} + map<FixedHash<4>, FunctionTypePointer> ContractDefinition::interfaceFunctions() const { auto exportedFunctionList = interfaceFunctionList(); diff --git a/libsolidity/ast/AST.h b/libsolidity/ast/AST.h index 446088ad..75cb9ab2 100644 --- a/libsolidity/ast/AST.h +++ b/libsolidity/ast/AST.h @@ -142,6 +142,7 @@ public: virtual void accept(ASTConstVisitor& _visitor) const override; ASTString const& identifier() const { return *m_identifier; } + virtual ImportAnnotation& annotation() const override; private: ASTPointer<ASTString> m_identifier; diff --git a/libsolidity/ast/ASTAnnotations.h b/libsolidity/ast/ASTAnnotations.h index 4e0187cf..0bc91c60 100644 --- a/libsolidity/ast/ASTAnnotations.h +++ b/libsolidity/ast/ASTAnnotations.h @@ -54,6 +54,12 @@ struct DocumentedAnnotation std::multimap<std::string, DocTag> docTags; }; +struct ImportAnnotation: ASTAnnotation +{ + /// The absolute path of the source unit to import. + std::string absolutePath; +}; + struct TypeDeclarationAnnotation: ASTAnnotation { /// The name of this type, prefixed by proper namespaces if globally accessible. |