Files
Djordje Todorovic f05c08547d ptml: Introduce PTMLBuilder class
By using this class we can create ptml::Tags without
XML tags. It is useful in the revng-c part when we
want to generate Plain C. All PTML Tags, from now on,
should be created via this class only.

In addition, port `Yield` library to be using this.
2023-06-09 17:15:30 +02:00

52 lines
1.1 KiB
C++

#pragma once
//
// This file is distributed under the MIT License. See LICENSE.md for details.
//
#include <string>
#include "revng/PTML/Tag.h"
class BasicBlockID;
namespace model {
class Binary;
}
namespace ptml {
class PTMLBuilder;
}
namespace yield {
class Function;
namespace crossrelations {
class CrossRelations;
} // namespace crossrelations
namespace svg {
namespace detail {
using CrossRelations = yield::crossrelations::CrossRelations;
} // namespace detail
std::string controlFlowGraph(const ::ptml::PTMLBuilder &ThePTMLBuilder,
const yield::Function &InternalFunction,
const model::Binary &Binary);
std::string callGraph(const ::ptml::PTMLBuilder &ThePTMLBuilder,
const detail::CrossRelations &CrossRelationTree,
const model::Binary &Binary);
std::string callGraphSlice(const ::ptml::PTMLBuilder &ThePTMLBuilder,
std::string_view SlicePoint,
const detail::CrossRelations &CrossRelationTree,
const model::Binary &Binary);
} // namespace svg
} // namespace yield