aboutsummaryrefslogtreecommitdiffstats
path: root/libjulia/optimiser/ASTCopier.cpp
diff options
context:
space:
mode:
authorChristian Parpart <christian@ethereum.org>2018-10-15 17:52:35 +0800
committerChristian Parpart <christian@ethereum.org>2018-10-15 17:52:35 +0800
commit9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6 (patch)
tree2668ab22a40aad2448081f7bf22c7235d4b4c963 /libjulia/optimiser/ASTCopier.cpp
parentb965fd6e17f77e94afeb070a27182251b85b8ab3 (diff)
downloaddexon-solidity-9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6.tar
dexon-solidity-9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6.tar.gz
dexon-solidity-9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6.tar.bz2
dexon-solidity-9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6.tar.lz
dexon-solidity-9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6.tar.xz
dexon-solidity-9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6.tar.zst
dexon-solidity-9a4bec7e474a310c7f93ff3b84928e0e9ba9cce6.zip
Renaming libjulia to libyul
Diffstat (limited to 'libjulia/optimiser/ASTCopier.cpp')
-rw-r--r--libjulia/optimiser/ASTCopier.cpp184
1 files changed, 0 insertions, 184 deletions
diff --git a/libjulia/optimiser/ASTCopier.cpp b/libjulia/optimiser/ASTCopier.cpp
deleted file mode 100644
index a8a1e30f..00000000
--- a/libjulia/optimiser/ASTCopier.cpp
+++ /dev/null
@@ -1,184 +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/>.
-*/
-/**
- * Creates an independent copy of an AST, renaming identifiers to be unique.
- */
-
-#include <libjulia/optimiser/ASTCopier.h>
-
-#include <libjulia/Exceptions.h>
-
-#include <libsolidity/inlineasm/AsmData.h>
-
-#include <libdevcore/Common.h>
-
-using namespace std;
-using namespace dev;
-using namespace dev::julia;
-
-Statement ASTCopier::operator()(Instruction const&)
-{
- assertThrow(false, OptimizerException, "Invalid operation.");
- return {};
-}
-
-Statement ASTCopier::operator()(ExpressionStatement const& _statement)
-{
- return ExpressionStatement{ _statement.location, translate(_statement.expression) };
-}
-
-Statement ASTCopier::operator()(VariableDeclaration const& _varDecl)
-{
- return VariableDeclaration{
- _varDecl.location,
- translateVector(_varDecl.variables),
- translate(_varDecl.value)
- };
-}
-
-Statement ASTCopier::operator()(Assignment const& _assignment)
-{
- return Assignment{
- _assignment.location,
- translateVector(_assignment.variableNames),
- translate(_assignment.value)
- };
-}
-
-Statement ASTCopier::operator()(StackAssignment const&)
-{
- assertThrow(false, OptimizerException, "Invalid operation.");
- return {};
-}
-
-Statement ASTCopier::operator()(Label const&)
-{
- assertThrow(false, OptimizerException, "Invalid operation.");
- return {};
-}
-
-Expression ASTCopier::operator()(FunctionCall const& _call)
-{
- return FunctionCall{
- _call.location,
- translate(_call.functionName),
- translateVector(_call.arguments)
- };
-}
-
-Expression ASTCopier::operator()(FunctionalInstruction const& _instruction)
-{
- return FunctionalInstruction{
- _instruction.location,
- _instruction.instruction,
- translateVector(_instruction.arguments)
- };
-}
-
-Expression ASTCopier::operator()(Identifier const& _identifier)
-{
- return Identifier{_identifier.location, translateIdentifier(_identifier.name)};
-}
-
-Expression ASTCopier::operator()(Literal const& _literal)
-{
- return translate(_literal);
-}
-
-Statement ASTCopier::operator()(If const& _if)
-{
- return If{_if.location, translate(_if.condition), translate(_if.body)};
-}
-
-Statement ASTCopier::operator()(Switch const& _switch)
-{
- return Switch{_switch.location, translate(_switch.expression), translateVector(_switch.cases)};
-}
-
-Statement ASTCopier::operator()(FunctionDefinition const& _function)
-{
- string translatedName = translateIdentifier(_function.name);
-
- enterFunction(_function);
- ScopeGuard g([&]() { this->leaveFunction(_function); });
-
- return FunctionDefinition{
- _function.location,
- move(translatedName),
- translateVector(_function.parameters),
- translateVector(_function.returnVariables),
- translate(_function.body)
- };
-}
-
-Statement ASTCopier::operator()(ForLoop const& _forLoop)
-{
- enterScope(_forLoop.pre);
- ScopeGuard g([&]() { this->leaveScope(_forLoop.pre); });
-
- return ForLoop{
- _forLoop.location,
- translate(_forLoop.pre),
- translate(_forLoop.condition),
- translate(_forLoop.post),
- translate(_forLoop.body)
- };
-}
-
-Statement ASTCopier::operator ()(Block const& _block)
-{
- return translate(_block);
-}
-
-Expression ASTCopier::translate(Expression const& _expression)
-{
- return _expression.apply_visitor(static_cast<ExpressionCopier&>(*this));
-}
-
-Statement ASTCopier::translate(Statement const& _statement)
-{
- return _statement.apply_visitor(static_cast<StatementCopier&>(*this));
-}
-
-Block ASTCopier::translate(Block const& _block)
-{
- enterScope(_block);
- ScopeGuard g([&]() { this->leaveScope(_block); });
-
- return Block{_block.location, translateVector(_block.statements)};
-}
-
-Case ASTCopier::translate(Case const& _case)
-{
- return Case{_case.location, translate(_case.value), translate(_case.body)};
-}
-
-Identifier ASTCopier::translate(Identifier const& _identifier)
-{
- return Identifier{_identifier.location, translateIdentifier(_identifier.name)};
-}
-
-Literal ASTCopier::translate(Literal const& _literal)
-{
- return _literal;
-}
-
-TypedName ASTCopier::translate(TypedName const& _typedName)
-{
- return TypedName{_typedName.location, translateIdentifier(_typedName.name), _typedName.type};
-}
-