ROSE  0.11.87.0
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 
8 namespace Rose {
9 namespace BinaryAnalysis {
10 namespace Unparser {
11 
12 struct JvmSettings: public Settings {};
13 
15 class Jvm: public Base {
16  JvmSettings settings_;
17 
18 protected:
19  explicit Jvm(const JvmSettings &settings)
20  : settings_(settings) {}
21 
22 public:
23  ~Jvm() {}
24 
25  static Ptr instance(const JvmSettings &settings = JvmSettings()) {
26  return Ptr(new Jvm(settings));
27  }
28 
29  Ptr copy() const override {
30  return instance(settings());
31  }
32 
33  const JvmSettings& settings() const override { return settings_; }
34  JvmSettings& settings() override { return settings_; }
35 
36 protected:
37  void emitInstructionMnemonic(std::ostream&, SgAsmInstruction*, State&) const override;
38 };
39 
40 } // namespace
41 } // namespace
42 } // namespace
43 
44 #endif
45 #endif
Base class for machine instructions.
Main namespace for the ROSE library.
Settings that control unparsing.