/*
	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 .
*/
#include 
#include 
#include 
#include 
namespace yul
{
namespace test
{
namespace yul_fuzzer
{
class Function;
std::string functionToString(Function const& input);
std::string protoToYul(uint8_t const* data, size_t size);
std::ostream& operator<<(std::ostream& _os, BinaryOp const& _x);
std::ostream& operator<<(std::ostream& _os, Block const& _x);
std::ostream& operator<<(std::ostream& _os, Literal const& _x);
std::ostream& operator<<(std::ostream& _os, VarRef const& _x);
std::ostream& operator<<(std::ostream& _os, Expression const& _x);
std::ostream& operator<<(std::ostream& _os, BinaryOp const& _x);
std::ostream& operator<<(std::ostream& _os, VarDecl const& _x);
std::ostream& operator<<(std::ostream& _os, TypedVarDecl const& _x);
std::ostream& operator<<(std::ostream& _os, UnaryOp const& _x);
std::ostream& operator<<(std::ostream& _os, AssignmentStatement const& _x);
std::ostream& operator<<(std::ostream& _os, IfStmt const& _x);
std::ostream& operator<<(std::ostream& _os, StoreFunc const& _x);
std::ostream& operator<<(std::ostream& _os, Statement const& _x);
std::ostream& operator<<(std::ostream& _os, Block const& _x);
std::ostream& operator<<(std::ostream& _os, Function const& _x);
}
}
}