Use a stack to manage "where" location
[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  *  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 __MLIST_HH__
14 #define __MLIST_HH__
15
16 #include <vector>
17 #include "tlist.hxx"
18
19 namespace types
20 {
21 class EXTERN_AST MList : public TList
22 {
23 public :
24     MList() : TList() {}
25     //Destructor uses ~TList()
26
27     virtual InternalType*           clone()
28     {
29         return new MList(this);
30     }
31     void                            whoAmI(void)
32     {
33         std::cout << "types::MList";
34     };
35
36     ScilabType                        getType(void)
37     {
38         return ScilabMList;
39     }
40     bool                            isMList()
41     {
42         return true;
43     }
44     bool                            isTList()
45     {
46         return false;
47     }
48
49     virtual bool invoke(typed_list & in, optional_list & opt, int _iRetCount, typed_list & out, ast::ConstVisitor & execFunc, const ast::Exp & e);
50
51 protected :
52     MList(MList *_oMListCopyMe) : TList(_oMListCopyMe) {}
53 };
54 }
55
56 #endif /* __MLIST_HH__ */