aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGav Wood <i@gavwood.com>2014-05-26 18:26:08 +0800
committerGav Wood <i@gavwood.com>2014-05-26 18:26:08 +0800
commit8e3e592ec6a3b39835e540766774025e3f34c590 (patch)
tree99791b2ffcd5f4dc022476595c8ff7050fbd7681
parente2d327308d9024cbbb80ea21c056f38591319234 (diff)
downloaddexon-solidity-8e3e592ec6a3b39835e540766774025e3f34c590.tar
dexon-solidity-8e3e592ec6a3b39835e540766774025e3f34c590.tar.gz
dexon-solidity-8e3e592ec6a3b39835e540766774025e3f34c590.tar.bz2
dexon-solidity-8e3e592ec6a3b39835e540766774025e3f34c590.tar.lz
dexon-solidity-8e3e592ec6a3b39835e540766774025e3f34c590.tar.xz
dexon-solidity-8e3e592ec6a3b39835e540766774025e3f34c590.tar.zst
dexon-solidity-8e3e592ec6a3b39835e540766774025e3f34c590.zip
Add missing files.
-rw-r--r--Assembly.cpp16
-rw-r--r--Assembly.h2
-rw-r--r--Exceptions.h44
3 files changed, 59 insertions, 3 deletions
diff --git a/Assembly.cpp b/Assembly.cpp
index 317a92fc..a8491376 100644
--- a/Assembly.cpp
+++ b/Assembly.cpp
@@ -40,9 +40,19 @@ void Assembly::append(Assembly const& _a)
ostream& Assembly::streamOut(ostream& _out) const
{
- for (auto const& i: m_items)
- {
- }
+ for (AssemblyItem const& i: m_items)
+ switch (i.m_type)
+ {
+ case Operation:
+ _out << c_instructionInfo.at((Instruction)(byte)i.m_data).name << endl;
+ break;
+ case Push:
+ _out << i.m_data << endl;
+ break;
+/* case PushString:
+ _out << i.m_data << endl;
+ break;*/
+ }
return _out;
}
diff --git a/Assembly.h b/Assembly.h
index cbce3ca8..ca3beaf5 100644
--- a/Assembly.h
+++ b/Assembly.h
@@ -46,6 +46,8 @@ public:
AssemblyItemType type() const { return m_type; }
u256 data() const { return m_data; }
+ std::ostream& streamOut(std::ostream& _out) const;
+
private:
AssemblyItemType m_type;
u256 m_data;
diff --git a/Exceptions.h b/Exceptions.h
new file mode 100644
index 00000000..79b7cd52
--- /dev/null
+++ b/Exceptions.h
@@ -0,0 +1,44 @@
+/*
+ This file is part of cpp-ethereum.
+
+ cpp-ethereum is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ cpp-ethereum is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file Exceptions.h
+ * @author Gav Wood <i@gavwood.com>
+ * @date 2014
+ */
+
+#pragma once
+
+#include <libethcore/Exceptions.h>
+
+namespace eth
+{
+
+/// Compile a Low-level Lisp-like Language program into EVM-code.
+class CompilerException: public Exception {};
+class InvalidOperation: public CompilerException {};
+class IntegerOutOfRange: public CompilerException {};
+class StringTooLong: public CompilerException {};
+class EmptyList: public CompilerException {};
+class DataNotExecutable: public CompilerException {};
+class IncorrectParameterCount: public CompilerException {};
+class InvalidDeposit: public CompilerException {};
+class InvalidName: public CompilerException {};
+class InvalidMacroArgs: public CompilerException {};
+class InvalidLiteral: public CompilerException {};
+class BareSymbol: public CompilerException {};
+class ExpectedLiteral: public CompilerException {};
+
+}