aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmAnalysis.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-06-01 21:57:28 +0800
committerGitHub <noreply@github.com>2017-06-01 21:57:28 +0800
commitb4ae188a0f6da55317ca04bd64a7524592089ed0 (patch)
tree38b0b837fd37b2499e9b98463de3da99bde2b880 /libsolidity/inlineasm/AsmAnalysis.h
parent96de7a83264e3926831889bf48a897591efb3ff5 (diff)
parentd5408f78ad2089beaabc60e7b876ad1ff0d276a1 (diff)
downloaddexon-solidity-b4ae188a0f6da55317ca04bd64a7524592089ed0.tar
dexon-solidity-b4ae188a0f6da55317ca04bd64a7524592089ed0.tar.gz
dexon-solidity-b4ae188a0f6da55317ca04bd64a7524592089ed0.tar.bz2
dexon-solidity-b4ae188a0f6da55317ca04bd64a7524592089ed0.tar.lz
dexon-solidity-b4ae188a0f6da55317ca04bd64a7524592089ed0.tar.xz
dexon-solidity-b4ae188a0f6da55317ca04bd64a7524592089ed0.tar.zst
dexon-solidity-b4ae188a0f6da55317ca04bd64a7524592089ed0.zip
Merge pull request #2336 from ethereum/expectExpression
Refactor to use expectExpression in analyzer.
Diffstat (limited to 'libsolidity/inlineasm/AsmAnalysis.h')
-rw-r--r--libsolidity/inlineasm/AsmAnalysis.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/libsolidity/inlineasm/AsmAnalysis.h b/libsolidity/inlineasm/AsmAnalysis.h
index 7e4d78df..e52e6302 100644
--- a/libsolidity/inlineasm/AsmAnalysis.h
+++ b/libsolidity/inlineasm/AsmAnalysis.h
@@ -47,6 +47,8 @@ struct StackAssignment;
struct FunctionDefinition;
struct FunctionCall;
struct Switch;
+using Statement = boost::variant<Instruction, Literal, Label, StackAssignment, Identifier, Assignment, FunctionCall, FunctionalInstruction, VariableDeclaration, FunctionDefinition, Switch, Block>;
+
struct Scope;
@@ -83,10 +85,13 @@ public:
bool operator()(assembly::Block const& _block);
private:
+ /// Visits the statement and expects it to deposit one item onto the stack.
+ bool expectExpression(Statement const& _statement);
+
/// Verifies that a variable to be assigned to exists and has the same size
/// as the value, @a _valueSize, unless that is equal to -1.
bool checkAssignment(assembly::Identifier const& _assignment, size_t _valueSize = size_t(-1));
- bool expectDeposit(int _deposit, int _oldHeight, SourceLocation const& _location);
+
Scope& scope(assembly::Block const* _block);
void expectValidType(std::string const& type, SourceLocation const& _location);