diff options
author | chriseth <chris@ethereum.org> | 2017-03-16 01:07:52 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-16 01:07:52 +0800 |
commit | f0d539ae05739e35336cc9cc8f44bd9798a95c28 (patch) | |
tree | 13ef1dea012c7f093122d5e7578dc3c893636e59 /libsolidity/inlineasm/AsmStack.cpp | |
parent | 364da425d3116a4b85863df39a1864340861d71e (diff) | |
parent | 59099908c53129b2f5723bd0d5283c4da089e398 (diff) | |
download | dexon-solidity-f0d539ae05739e35336cc9cc8f44bd9798a95c28.tar dexon-solidity-f0d539ae05739e35336cc9cc8f44bd9798a95c28.tar.gz dexon-solidity-f0d539ae05739e35336cc9cc8f44bd9798a95c28.tar.bz2 dexon-solidity-f0d539ae05739e35336cc9cc8f44bd9798a95c28.tar.lz dexon-solidity-f0d539ae05739e35336cc9cc8f44bd9798a95c28.tar.xz dexon-solidity-f0d539ae05739e35336cc9cc8f44bd9798a95c28.tar.zst dexon-solidity-f0d539ae05739e35336cc9cc8f44bd9798a95c28.zip |
Merge pull request #1782 from ethereum/develop
Solidity 0.4.10
Diffstat (limited to 'libsolidity/inlineasm/AsmStack.cpp')
-rw-r--r-- | libsolidity/inlineasm/AsmStack.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/libsolidity/inlineasm/AsmStack.cpp b/libsolidity/inlineasm/AsmStack.cpp index b8e0e857..266136a1 100644 --- a/libsolidity/inlineasm/AsmStack.cpp +++ b/libsolidity/inlineasm/AsmStack.cpp @@ -21,12 +21,18 @@ */ #include <libsolidity/inlineasm/AsmStack.h> -#include <memory> -#include <libevmasm/Assembly.h> -#include <libevmasm/SourceLocation.h> -#include <libsolidity/parsing/Scanner.h> + #include <libsolidity/inlineasm/AsmParser.h> #include <libsolidity/inlineasm/AsmCodeGen.h> +#include <libsolidity/inlineasm/AsmPrinter.h> +#include <libsolidity/inlineasm/AsmAnalysis.h> + +#include <libsolidity/parsing/Scanner.h> + +#include <libevmasm/Assembly.h> +#include <libevmasm/SourceLocation.h> + +#include <memory> using namespace std; using namespace dev; @@ -40,8 +46,15 @@ bool InlineAssemblyStack::parse(shared_ptr<Scanner> const& _scanner) auto result = parser.parse(_scanner); if (!result) return false; + *m_parserResult = std::move(*result); - return true; + AsmAnalyzer::Scopes scopes; + return (AsmAnalyzer(scopes, m_errors))(*m_parserResult); +} + +string InlineAssemblyStack::toString() +{ + return AsmPrinter()(*m_parserResult); } eth::Assembly InlineAssemblyStack::assemble() |