aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmStack.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-03-16 01:07:52 +0800
committerGitHub <noreply@github.com>2017-03-16 01:07:52 +0800
commitf0d539ae05739e35336cc9cc8f44bd9798a95c28 (patch)
tree13ef1dea012c7f093122d5e7578dc3c893636e59 /libsolidity/inlineasm/AsmStack.cpp
parent364da425d3116a4b85863df39a1864340861d71e (diff)
parent59099908c53129b2f5723bd0d5283c4da089e398 (diff)
downloaddexon-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.cpp23
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()