ROSE  0.11.145.0
Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/Exception.h
1 #ifndef ROSE_BinaryAnalysis_InstructionSemantics_BaseSemantics_Exception_H
2 #define ROSE_BinaryAnalysis_InstructionSemantics_BaseSemantics_Exception_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
5 
6 #include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
7 #include <Rose/Exception.h>
8 
9 namespace Rose {
10 namespace BinaryAnalysis {
11 namespace InstructionSemantics {
12 namespace BaseSemantics {
13 
15 // Exceptions
17 
19 class Exception: public Rose::Exception {
20 public:
21  SgAsmInstruction *insn;
22  Exception(const std::string &mesg, SgAsmInstruction *insn): Rose::Exception(mesg), insn(insn) {}
23  void print(std::ostream&) const;
24 };
25 
26 class NotImplemented: public Exception {
27 public:
28  NotImplemented(const std::string &mesg, SgAsmInstruction *insn)
29  : Exception(mesg, insn) {}
30 };
31 
32 std::ostream& operator<<(std::ostream&, const Exception&);
33 
34 } // namespace
35 } // namespace
36 } // namespace
37 } // namespace
38 
39 #endif
40 #endif
Base class for machine instructions.
Main namespace for the ROSE library.
Base class for all ROSE exceptions.
Definition: Rose/Exception.h:9