aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmData.h
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2017-02-02 04:20:21 +0800
committerchriseth <c@ethdev.com>2017-02-16 17:15:22 +0800
commit49a919b3e012cfa0f7e0c93c29b93289740e9e44 (patch)
tree83bb619c3bd17f28a439c28f2a5df7b17895ad83 /libsolidity/inlineasm/AsmData.h
parent5d584aded8bcabaafddf2f61692f8663913be603 (diff)
downloaddexon-solidity-49a919b3e012cfa0f7e0c93c29b93289740e9e44.tar
dexon-solidity-49a919b3e012cfa0f7e0c93c29b93289740e9e44.tar.gz
dexon-solidity-49a919b3e012cfa0f7e0c93c29b93289740e9e44.tar.bz2
dexon-solidity-49a919b3e012cfa0f7e0c93c29b93289740e9e44.tar.lz
dexon-solidity-49a919b3e012cfa0f7e0c93c29b93289740e9e44.tar.xz
dexon-solidity-49a919b3e012cfa0f7e0c93c29b93289740e9e44.tar.zst
dexon-solidity-49a919b3e012cfa0f7e0c93c29b93289740e9e44.zip
Parsing function calls.
Diffstat (limited to 'libsolidity/inlineasm/AsmData.h')
-rw-r--r--libsolidity/inlineasm/AsmData.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/libsolidity/inlineasm/AsmData.h b/libsolidity/inlineasm/AsmData.h
index 64dd7b8e..d61b5803 100644
--- a/libsolidity/inlineasm/AsmData.h
+++ b/libsolidity/inlineasm/AsmData.h
@@ -49,13 +49,15 @@ struct Assignment { SourceLocation location; Identifier variableName; };
struct FunctionalAssignment;
struct VariableDeclaration;
struct FunctionDefinition;
+struct FunctionCall;
struct Block;
-using Statement = boost::variant<Instruction, Literal, Label, Assignment, Identifier, FunctionalAssignment, FunctionalInstruction, VariableDeclaration, FunctionDefinition, Block>;
+using Statement = boost::variant<Instruction, Literal, Label, Assignment, Identifier, FunctionalAssignment, FunctionCall, FunctionalInstruction, VariableDeclaration, FunctionDefinition, Block>;
/// Functional assignment ("x := mload(20)", expects push-1-expression on the right hand
/// side and requires x to occupy exactly one stack slot.
struct FunctionalAssignment { SourceLocation location; Identifier variableName; std::shared_ptr<Statement> value; };
/// Functional instruction, e.g. "mul(mload(20), add(2, x))"
struct FunctionalInstruction { SourceLocation location; Instruction instruction; std::vector<Statement> arguments; };
+struct FunctionCall { SourceLocation location; Identifier functionName; std::vector<Statement> arguments; };
/// Block-scope variable declaration ("let x := mload(20)"), non-hoisted
struct VariableDeclaration { SourceLocation location; std::string name; std::shared_ptr<Statement> value; };
/// Block that creates a scope (frees declared stack variables)