Analysis: infer when a refcount is required and add colors in DebugVisitor
[scilab.git] / scilab / modules / ast / includes / analysis / data / Clone.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2015 - 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 __CLONE_HXX__
14 #define __CLONE_HXX__
15
16 #include <iostream>
17
18 #include "tools.hxx"
19
20 namespace analysis
21 {
22
23 class Clone
24 {
25
26     tools::SymbolSet set;
27
28 public:
29
30     Clone() { }
31     Clone(const symbol::Symbol & sym)
32     {
33         add(sym);
34     }
35
36     inline void add(const symbol::Symbol & sym)
37     {
38         set.emplace(sym);
39     }
40
41     inline const tools::SymbolSet & get() const
42     {
43         return set;
44     }
45
46     inline void clear()
47     {
48         set.clear();
49     }
50
51     friend std::wostream & operator<<(std::wostream & out, const Clone & c)
52     {
53         out << L"Clone";
54         tools::printSet(c.set, out);
55
56         return out;
57     }
58 };
59
60 } // namespace analysis
61
62
63 #endif // __CLONE_HXX__