diff options
author | Gav Wood <i@gavwood.com> | 2014-05-26 18:26:08 +0800 |
---|---|---|
committer | Gav Wood <i@gavwood.com> | 2014-05-26 18:26:08 +0800 |
commit | 8e3e592ec6a3b39835e540766774025e3f34c590 (patch) | |
tree | 99791b2ffcd5f4dc022476595c8ff7050fbd7681 | |
parent | e2d327308d9024cbbb80ea21c056f38591319234 (diff) | |
download | dexon-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.cpp | 16 | ||||
-rw-r--r-- | Assembly.h | 2 | ||||
-rw-r--r-- | Exceptions.h | 44 |
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; } @@ -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 {}; + +} |