diff options
author | chriseth <chris@ethereum.org> | 2018-11-24 00:01:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-24 00:01:18 +0800 |
commit | 9a94e503da84cc66f643b3972bf8ad4defa02060 (patch) | |
tree | 8efb3b6d25ba2574689731bcbea2eac901523d24 /libsolidity/inlineasm/AsmScopeFiller.h | |
parent | 4fb15c9327c2c4bfae29f0ff23c1ab0b1218f735 (diff) | |
parent | 8dd0338d127b50e60d50f978be68605e8f8faee5 (diff) | |
download | dexon-solidity-9a94e503da84cc66f643b3972bf8ad4defa02060.tar dexon-solidity-9a94e503da84cc66f643b3972bf8ad4defa02060.tar.gz dexon-solidity-9a94e503da84cc66f643b3972bf8ad4defa02060.tar.bz2 dexon-solidity-9a94e503da84cc66f643b3972bf8ad4defa02060.tar.lz dexon-solidity-9a94e503da84cc66f643b3972bf8ad4defa02060.tar.xz dexon-solidity-9a94e503da84cc66f643b3972bf8ad4defa02060.tar.zst dexon-solidity-9a94e503da84cc66f643b3972bf8ad4defa02060.zip |
Merge pull request #5491 from ethereum/libyul-as-library
Libyul as static library (version 3 ;( )
Diffstat (limited to 'libsolidity/inlineasm/AsmScopeFiller.h')
-rw-r--r-- | libsolidity/inlineasm/AsmScopeFiller.h | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/libsolidity/inlineasm/AsmScopeFiller.h b/libsolidity/inlineasm/AsmScopeFiller.h deleted file mode 100644 index 7454fd6c..00000000 --- a/libsolidity/inlineasm/AsmScopeFiller.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - This file is part of solidity. - - solidity 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. - - solidity 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 solidity. If not, see <http://www.gnu.org/licenses/>. -*/ -/** - * Module responsible for registering identifiers inside their scopes. - */ - -#pragma once - -#include <libsolidity/inlineasm/AsmDataForward.h> - -#include <boost/variant.hpp> - -#include <functional> -#include <memory> - -namespace langutil -{ -class ErrorReporter; -struct SourceLocation; -} - -namespace dev -{ -namespace solidity -{ -namespace assembly -{ - -struct TypedName; -struct Scope; -struct AsmAnalysisInfo; - -/** - * Fills scopes with identifiers and checks for name clashes. - * Does not resolve references. - */ -class ScopeFiller: public boost::static_visitor<bool> -{ -public: - ScopeFiller(AsmAnalysisInfo& _info, langutil::ErrorReporter& _errorReporter); - - bool operator()(assembly::Instruction const&) { return true; } - bool operator()(assembly::Literal const&) { return true; } - bool operator()(assembly::Identifier const&) { return true; } - bool operator()(assembly::FunctionalInstruction const&) { return true; } - bool operator()(assembly::ExpressionStatement const& _expr); - bool operator()(assembly::Label const& _label); - bool operator()(assembly::StackAssignment const&) { return true; } - bool operator()(assembly::Assignment const&) { return true; } - bool operator()(assembly::VariableDeclaration const& _variableDeclaration); - bool operator()(assembly::FunctionDefinition const& _functionDefinition); - bool operator()(assembly::FunctionCall const&) { return true; } - bool operator()(assembly::If const& _if); - bool operator()(assembly::Switch const& _switch); - bool operator()(assembly::ForLoop const& _forLoop); - bool operator()(assembly::Block const& _block); - -private: - bool registerVariable( - TypedName const& _name, - langutil::SourceLocation const& _location, - Scope& _scope - ); - - Scope& scope(assembly::Block const* _block); - - Scope* m_currentScope = nullptr; - AsmAnalysisInfo& m_info; - langutil::ErrorReporter& m_errorReporter; -}; - -} -} -} |