d2971e5c1aa4b97368bf7072c9b9923f9f4cd723
[scilab.git] / scilab / modules / ast / includes / types / mlist.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2010-2010 - DIGITEO - Antoine ELIAS
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  * === LICENSE_END ===
14  *
15  */
16
17 #ifndef __MLIST_HH__
18 #define __MLIST_HH__
19
20 #include <vector>
21 #include "tlist.hxx"
22
23 namespace types
24 {
25 class EXTERN_AST MList : public TList
26 {
27 public :
28     MList() : TList() {}
29     //Destructor uses ~TList()
30
31     virtual MList*                  clone()
32     {
33         return new MList(this);
34     }
35     void                            whoAmI(void)
36     {
37         std::cout << "types::MList";
38     };
39
40     ScilabType                      getType(void)
41     {
42         return ScilabMList;
43     }
44     bool                            isMList()
45     {
46         return true;
47     }
48     bool                            isTList()
49     {
50         return false;
51     }
52
53     virtual bool invoke(typed_list & in, optional_list & opt, int _iRetCount, typed_list & out, const ast::Exp & e) override;
54
55 protected :
56     MList(MList *_oMListCopyMe) : TList(_oMListCopyMe) {}
57 };
58 }
59
60 #endif /* __MLIST_HH__ */