License Header change: Removed the LICENSE_END before beta
[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  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 #ifndef __XBLOCK_HXX__
17 #define __XBLOCK_HXX__
18
19 #include "Block.hxx"
20
21 namespace analysis
22 {
23
24 class XBlock : public Block
25 {
26
27 public:
28
29     XBlock(const unsigned int id, Block * parent, ast::Exp * exp) : Block(id, parent, exp) { }
30
31     void finalize() override;
32 };
33
34 class XBlockHead : public Block
35 {
36     std::vector<Block *> testBlocks;
37     
38 public:
39
40     XBlockHead(const unsigned int id, Block * parent, ast::Exp * exp) : Block(id, parent, exp) { }
41
42     virtual ~XBlockHead()
43         {
44             std::for_each(testBlocks.begin(), testBlocks.end(), [](Block * b)
45                           {
46                               delete b;
47                           });
48         }
49
50     Block * addBlock(const unsigned int id, BlockKind kind, ast::Exp * exp) override;
51     void finalize() override;
52 };
53
54 } // namespace analysis
55
56 #endif // __XBLOCK_HXX__