00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00027 #ifndef SHEXCEPTION_HPP
00028 #define SHEXCEPTION_HPP
00029 
00030 #include <string>
00031 #include "ShDllExport.hpp"
00032 
00033 namespace SH {
00034 
00038 class
00039 SH_DLLEXPORT ShException {
00040 public:
00042   ShException(const std::string& message);
00043   virtual ~ShException(); 
00044                           
00045   
00047   const std::string& message() const;
00048   
00049 protected:
00050   std::string m_message;
00051 };
00052 
00055 class
00056 SH_DLLEXPORT ShParseException : public ShException {
00057 public:
00058   ShParseException(const std::string& message);
00059 };
00060 
00063 class
00064 SH_DLLEXPORT ShScopeException : public ShException {
00065 public:
00066   ShScopeException(const std::string& message);
00067 };
00068 
00071 class
00072 SH_DLLEXPORT ShImageException : public ShException {
00073 public:
00074   ShImageException(const std::string& message);
00075 };
00076 
00079 class
00080 SH_DLLEXPORT ShAlgebraException : public ShException {
00081 public:
00082   ShAlgebraException(const std::string& message);
00083 };
00084 
00087 class
00088 SH_DLLEXPORT ShOptimizerException : public ShException {
00089 public:
00090   ShOptimizerException(const std::string& message);
00091 };
00092 
00095 class
00096 SH_DLLEXPORT ShTransformerException : public ShException {
00097 public:
00098   ShTransformerException(const std::string& message);
00099 };
00100 
00103 class
00104 SH_DLLEXPORT ShBackendException : public ShException {
00105 public:
00106   ShBackendException(const std::string& message);
00107 };
00108 
00109 }
00110 
00111 #endif