mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
f05c08547d
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.
52 lines
1.1 KiB
C++
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
|