1 #ifndef ROSE_BinaryAnalysis_ByteCode_Cil_H
2 #define ROSE_BinaryAnalysis_ByteCode_Cil_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
6 #include <Rose/BinaryAnalysis/ByteCode/Analysis.h>
9 namespace BinaryAnalysis {
14 virtual const uint8_t* bytes()
const {
17 virtual const size_t size()
const {
20 virtual const rose_addr_t offset()
const {
24 explicit CilCode(uint8_t* bytes,
size_t size, rose_addr_t offset)
25 : bytes_{bytes}, size_{size}, offset_{offset} {
29 const uint8_t* bytes_;
36 virtual const std::string name()
const {
37 return "CilField::name():UNIMPLEMENTED";
47 virtual const std::string name()
const;
48 virtual const Code & code()
const;
63 virtual const std::string name()
const {
64 return "CilInterface::name():UNIMPLEMENTED";
74 virtual const std::string name()
const {
75 return "CilAttribute::name():UNIMPLEMENTED";
85 virtual const std::string name()
const {
86 return "CilClass::name():UNIMPLEMENTED";
88 virtual const std::string super_name()
const {
89 return "CilClass::super_name():UNIMPLEMENTED";
91 virtual const std::vector<std::string> &strings() {
94 virtual const std::vector<const Interface*> &interfaces()
const {
97 virtual const std::vector<const Field*> &fields()
const {
100 virtual const std::vector<const Method*> &methods()
const {
103 virtual const std::vector<const Attribute*> &attributes()
const {
111 std::vector<const Field*> fields_;
112 std::vector<const Method*> methods_;
113 std::vector<const Attribute*> attributes_;
114 std::vector<const Interface*> interfaces_;
115 std::vector<std::string> strings_;
116 const std::uint8_t* name_;
123 virtual const std::string name()
const;
124 virtual const std::vector<const Class*> &classes()
const;
132 std::vector<const Class*> classes_;
134 const std::uint8_t* name_;
139 virtual const std::string name()
const;
140 virtual const std::vector<const Namespace*> &namespaces()
const;
142 void printAssemblies(std::ostream& os)
const;
143 void printMethods(std::ostream& os,
size_t beg,
size_t lim)
const;
144 void printModules(std::ostream& os)
const;
145 void printTypeDefs(std::ostream& os)
const;
151 std::vector<const Namespace*> namespaces_;
Main namespace for the ROSE library.
List of SgAsmInstruction nodes.