/*
    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 langutil
{
class Error;
using ErrorList = std::vector>;
}
namespace yul
{
struct AsmAnalysisInfo;
}
namespace yul
{
namespace test
{
void printErrors(langutil::ErrorList const& _errors);
std::pair, std::shared_ptr>
parse(std::string const& _source, bool _yul = true);
Block disambiguate(std::string const& _source, bool _yul = true);
std::string format(std::string const& _source, bool _yul = true);
}
}