Refactoring of ScilabException in AST, exec, execstr.
[scilab.git] / scilab / modules / abstractSyntaxTree / includes / scilabexception.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2010 - DIGITEO - Antoine ELIAS
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #ifndef AST_SCILABEXCEPTION_HXX
14 #define AST_SCILABEXCEPTION_HXX
15
16 #include <string>
17 #include <stdexcept>
18 #include "location.hxx"
19 #include "dynlib_ast_tools.hxx"
20
21 namespace ast
22 {
23     class EXTERN_AST_TOOLS ScilabException : public std::exception
24     {
25     public :
26         ScilabException();
27         ScilabException(std::wstring _wstErrorMesssage);
28         ScilabException(std::string _stErrorMesssage);
29         ScilabException(const Location& _ErrorLocation);
30         ScilabException(std::wstring _wstErrorMesssage, int _iErrorNumber, const Location& _ErrorLocation);
31         virtual ~ScilabException() throw() {};
32
33         void            SetErrorMessage(std::wstring _wstErrorMesssage);
34         std::wstring    GetErrorMessage(void);
35
36         void            SetErrorNumber(int _iErrorNumber);
37         int             GetErrorNumber(void);
38
39         void            SetErrorLocation(const Location& _ErrorLocation);
40         Location&       GetErrorLocation(void);
41     protected :
42         std::wstring    m_wstErrorMessage;
43
44         int             m_iErrorNumber;
45         Location        m_ErrorLocation;
46     };
47
48     class EXTERN_AST_TOOLS ScilabError : public ScilabException
49     {
50     public :
51         ScilabError() : ScilabException(){}
52         ScilabError(std::wstring _wstErrorMesssage) : ScilabException(_wstErrorMesssage){}
53         ScilabError(std::string _stErrorMesssage) : ScilabException(_stErrorMesssage){}
54         ScilabError(const Location& _ErrorLocation) : ScilabException(_ErrorLocation){}
55         ScilabError(std::wstring _wstErrorMesssage, int _iErrorNumber, const Location& _ErrorLocation) : ScilabException(_wstErrorMesssage, _iErrorNumber, _ErrorLocation){}
56     };
57
58     class EXTERN_AST_TOOLS InternalError : public ScilabException
59     {
60     public :
61         InternalError(){}
62     };
63
64     class EXTERN_AST_TOOLS ScilabMessage : public ScilabException
65     {
66     public :
67         ScilabMessage() : ScilabException(){}
68         ScilabMessage(std::wstring _wstErrorMesssage) : ScilabException(_wstErrorMesssage){}
69         ScilabMessage(std::string _stErrorMesssage) : ScilabException(_stErrorMesssage){}
70         ScilabMessage(const Location& _ErrorLocation) : ScilabException(_ErrorLocation){}
71         ScilabMessage(std::wstring _wstErrorMesssage, int _iErrorNumber, const Location& _ErrorLocation) : ScilabException(_wstErrorMesssage, _iErrorNumber, _ErrorLocation){}
72     };
73 }
74 #endif // !AST_SCILABEXCEPTION_HXX