aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmData.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-06-01 21:41:51 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-06-16 17:56:21 +0800
commit8e5c4bf21dfd9cfaa8de35aef034bb32be290a48 (patch)
treeaa5fcd80d41fff75fa60e0db66e002cc79f829c5 /libsolidity/inlineasm/AsmData.h
parent49b11121179040d438dd8795a710f3d9de3de789 (diff)
downloaddexon-solidity-8e5c4bf21dfd9cfaa8de35aef034bb32be290a48.tar
dexon-solidity-8e5c4bf21dfd9cfaa8de35aef034bb32be290a48.tar.gz
dexon-solidity-8e5c4bf21dfd9cfaa8de35aef034bb32be290a48.tar.bz2
dexon-solidity-8e5c4bf21dfd9cfaa8de35aef034bb32be290a48.tar.lz
dexon-solidity-8e5c4bf21dfd9cfaa8de35aef034bb32be290a48.tar.xz
dexon-solidity-8e5c4bf21dfd9cfaa8de35aef034bb32be290a48.tar.zst
dexon-solidity-8e5c4bf21dfd9cfaa8de35aef034bb32be290a48.zip
Add include file to forward-declare inline assembly structs.
Diffstat (limited to 'libsolidity/inlineasm/AsmData.h')
-rw-r--r--libsolidity/inlineasm/AsmData.h23
1 files changed, 4 insertions, 19 deletions
diff --git a/libsolidity/inlineasm/AsmData.h b/libsolidity/inlineasm/AsmData.h
index c2458bd7..db5840bc 100644
--- a/libsolidity/inlineasm/AsmData.h
+++ b/libsolidity/inlineasm/AsmData.h
@@ -22,10 +22,13 @@
#pragma once
-#include <boost/variant.hpp>
+#include <libsolidity/inlineasm/AsmDataForward.h>
+
#include <libevmasm/Instruction.h>
#include <libevmasm/SourceLocation.h>
+#include <boost/variant.hpp>
+
namespace dev
{
namespace solidity
@@ -38,24 +41,6 @@ using Type = std::string;
struct TypedName { SourceLocation location; std::string name; Type type; };
using TypedNameList = std::vector<TypedName>;
-/// What follows are the AST nodes for assembly.
-
-struct Instruction;
-struct Literal;
-struct Label;
-struct StackAssignment;
-struct Identifier;
-struct Assignment;
-struct VariableDeclaration;
-struct FunctionalInstruction;
-struct FunctionDefinition;
-struct FunctionCall;
-struct Switch;
-struct ForLoop;
-struct Block;
-
-using Statement = boost::variant<Instruction, Literal, Label, StackAssignment, Identifier, Assignment, FunctionCall, FunctionalInstruction, VariableDeclaration, FunctionDefinition, Switch, ForLoop, Block>;
-
/// Direct EVM instruction (except PUSHi and JUMPDEST)
struct Instruction { SourceLocation location; solidity::Instruction instruction; };
/// Literal number or string (up to 32 bytes)