1 #ifndef ROSE_BinaryAnalysis_ModelChecker_Tag_H
2 #define ROSE_BinaryAnalysis_ModelChecker_Tag_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_MODEL_CHECKER
6 #include <Rose/BinaryAnalysis/ModelChecker/Types.h>
9 namespace BinaryAnalysis {
10 namespace ModelChecker {
22 class Tag:
public std::enable_shared_from_this<Tag> {
28 const size_t nodeStep_;
42 size_t nodeStep()
const;
50 virtual std::string name()
const = 0;
58 virtual std::string printableName()
const = 0;
67 virtual void print(std::ostream&,
const std::string &prefix)
const = 0;
75 virtual void toYaml(std::ostream&,
const std::string &prefix)
const = 0;
94 class NameTag:
public Tag {
96 using Ptr = NameTagPtr;
99 const std::string name_;
102 explicit NameTag(
size_t nodeStep,
const std::string &name);
108 static Ptr instance(
size_t nodeStep,
const std::string &name);
111 virtual std::string name()
const override;
112 virtual std::string printableName()
const override;
113 virtual void print(std::ostream&,
const std::string &prefix)
const override;
114 virtual void toYaml(std::ostream&,
const std::string &prefix)
const override;
Main namespace for the ROSE library.
void print(const StackVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple local variables.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.