#pragma once // // This file is distributed under the MIT License. See LICENSE.md for details. // #include "revng/Backend/DecompilePipe.h" #include "revng/Pipebox/Containers.h" #include "revng/PipeboxCommon/Model.h" #include "revng/Pipes/StringMap.h" #include "revng/Support/MetaAddress.h" namespace ptml { class ModelCBuilder; } namespace detail { using DecompiledStringMap = revng::pipes::DecompileStringMap; } void printSingleCFile(ptml::ModelCBuilder &B, const detail::DecompiledStringMap &Functions, const std::set &Targets); namespace revng::pypeline { namespace piperuns { class DecompileToSingleFile { private: const model::Binary &Binary; const PTMLCFunctionBytesContainer &Input; PTMLCBytesContainer &Output; public: static constexpr llvm::StringRef Name = "decompile-to-single-file"; using Arguments = TypeList, PipeRunArgument>; DecompileToSingleFile(const Model &Model, llvm::StringRef Config, llvm::StringRef DynamicConfig, const PTMLCFunctionBytesContainer &Input, PTMLCBytesContainer &Output); void run(); }; } // namespace piperuns } // namespace revng::pypeline