* Bug 14606 fixed: now `[names,mem]=who()` returns memory used by variables
[scilab.git] / scilab / modules / ast / includes / types / macro.hxx
index 2c65a1f..56c9b59 100644 (file)
@@ -2,11 +2,14 @@
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  *  Copyright (C) 2009-2010 - DIGITEO - Bruno JOFRET
  *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
  *
  */
 
@@ -38,7 +41,7 @@ public :
     virtual                     ~Macro();
 
     // FIXME : Should not return NULL;
-    InternalType*               clone();
+    Macro*                      clone();
 
     inline ScilabType           getType(void)
     {
@@ -63,13 +66,15 @@ public :
 
     ast::SeqExp*                getBody();
 
+    bool                        getMemory(int* _piSize, int* _piSizePlusType);
+
     /* return type as string ( double, int, cell, list, ... )*/
-    virtual std::wstring        getTypeStr()
+    virtual std::wstring        getTypeStr() const
     {
         return L"function";
     }
     /* return type as short string ( s, i, ce, l, ... )*/
-    virtual std::wstring        getShortTypeStr()
+    virtual std::wstring        getShortTypeStr() const
     {
         return L"function";
     }
@@ -94,6 +99,16 @@ public :
 
     void add_submacro(const symbol::Symbol& s, Macro* macro);
 
+    inline const std::map<symbol::Variable*, Macro*> & getSubMacros() const
+    {
+        return m_submacro;
+    }
+
+    inline const std::map<symbol::Variable*, Macro*> & getSubMacros()
+    {
+        return m_submacro;
+    }
+
 private :
     std::list<symbol::Variable*>*   m_inputArgs;
     std::list<symbol::Variable*>*   m_outputArgs;