fix library path
[scilab.git] / scilab / modules / ast / includes / analysis / Result.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
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 __RESULT_HXX__
14 #define __RESULT_HXX__
15
16 #include "TIType.hxx"
17
18 #include <iostream>
19
20 namespace analysis
21 {
22 class Result
23 {
24     TIType type;
25     bool temp;
26     bool constant;
27
28 public:
29
30     Result() : type(), temp(false), constant(false) { }
31     Result(const TIType & _type, const bool _temp, const bool _constant) : type(_type), temp(_temp), constant(_constant) { }
32     Result(TIType && _type, const bool _temp, const bool _constant) : type(_type), temp(_temp), constant(_constant) { }
33
34     inline bool isTemp() const
35     {
36         return temp;
37     }
38
39     inline bool isConstant() const
40     {
41         return constant;
42     }
43
44     inline const TIType & getType() const
45     {
46         return type;
47     }
48
49     friend std::wostream & operator<<(std::wostream & out, const Result & res)
50     {
51         out << L"Result {" << res.type << L", temporary: " << (res.temp ? L"true" : L"false") << L"}";
52         return out;
53     }
54 };
55
56 } // namespace analysis
57
58 #endif // __RESULT_HXX__