#pragma once
#include <libyul/backends/evm/AbstractAssembly.h>
#include <libyul/AsmAnalysis.h>
#include <liblangutil/EVMVersion.h>
namespace solidity::evmasm
{
class Assembly;
}
namespace solidity::yul
{
struct Block;
struct AsmAnalysisInfo;
class CodeGenerator
{
public:
static void assemble(
Block const& _parsedData,
AsmAnalysisInfo& _analysisInfo,
evmasm::Assembly& _assembly,
langutil::EVMVersion _evmVersion,
ExternalIdentifierAccess::CodeGenerator _identifierAccess = {},
bool _useNamedLabelsForFunctions = false,
bool _optimizeStackAllocation = false
);
};
}