ROSE 0.11.145.202
Rose/BinaryAnalysis/Unparser/Jvm.h
1#ifndef ROSE_BinaryAnalysis_Unparser_Jvm_H
2#define ROSE_BinaryAnalysis_Unparser_Jvm_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5
6#include <Rose/BinaryAnalysis/Unparser/Base.h>
7
8namespace Rose {
9namespace BinaryAnalysis {
10namespace Unparser {
11
12std::string unparseJvmMnemonic(SgAsmJvmInstruction*);
13std::string unparseJvmExpression(SgAsmExpression*, const LabelMap*);
14
16struct JvmSettings: public Settings {};
17
19class Jvm: public Base {
20 JvmSettings settings_;
21
22protected:
23 explicit Jvm(const Architecture::BaseConstPtr&, const JvmSettings&);
24
25public:
26 ~Jvm();
27
28 static Ptr instance(const Architecture::BaseConstPtr&, const JvmSettings& = JvmSettings());
29
30 Ptr copy() const override;
31
32 const JvmSettings& settings() const override { return settings_; }
33 JvmSettings& settings() override { return settings_; }
34};
35
36} // namespace
37} // namespace
38} // namespace
39
40#endif
41#endif
Abstract base class for unparsers.
const JvmSettings & settings() const override
Property: Settings associated with this unparser.
JvmSettings & settings() override
Property: Settings associated with this unparser.
Base class for expressions.
Represents one JVS machine instruction.
std::shared_ptr< const Base > BaseConstPtr
Reference counted pointer for Architecture::Base.
std::map< uint64_t, std::string > LabelMap
Map from address to label.
The ROSE library.
Settings that control unparsing.