/* 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 . */ /** * @date 2017 * Common functions the Yul tests. */ #pragma once #include #include #include #include namespace solidity::langutil { class Error; using ErrorList = std::vector>; } namespace solidity::yul { struct AsmAnalysisInfo; struct Block; struct Object; struct Dialect; } namespace solidity::yul::test { void printErrors(langutil::ErrorList const& _errors); std::pair, std::shared_ptr> parse(std::string const& _source, bool _yul = true); std::pair, std::shared_ptr> parse(std::string const& _source, Dialect const& _dialect, langutil::ErrorList& _errors); Block disambiguate(std::string const& _source, bool _yul = true); std::string format(std::string const& _source, bool _yul = true); solidity::yul::Dialect const& dialect(std::string const& _name, langutil::EVMVersion _evmVersion); }