Analysis: infer when a refcount is required and add colors in DebugVisitor
[scilab.git] / scilab / modules / ast / includes / analysis / data / XBlock.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 __XBLOCK_HXX__
14 #define __XBLOCK_HXX__
15
16 #include "Block.hxx"
17
18 namespace analysis
19 {
20
21 class XBlock : public Block
22 {
23
24 public:
25
26     XBlock(const unsigned int id, Block * parent, ast::Exp * exp) : Block(id, parent, exp) { }
27
28     void finalize() override;
29 };
30
31 class XBlockHead : public Block
32 {
33     std::vector<Block *> testBlocks;
34     
35 public:
36
37     XBlockHead(const unsigned int id, Block * parent, ast::Exp * exp) : Block(id, parent, exp) { }
38
39     virtual ~XBlockHead()
40         {
41             std::for_each(testBlocks.begin(), testBlocks.end(), [](Block * b)
42                           {
43                               delete b;
44                           });
45         }
46
47     Block * addBlock(const unsigned int id, BlockKind kind, ast::Exp * exp) override;
48     void finalize() override;
49 };
50
51 } // namespace analysis
52
53 #endif // __XBLOCK_HXX__