use reduce version of function from analysis during macro execution
[scilab.git] / scilab / modules / ast / src / cpp / ast / FBlockListener.cpp
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2017 - ESI - 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 *
14 */
15
16 #include "FBlockListener.hxx"
17
18 std::unordered_map<uint64_t, ast::Exp*> FBlockListener::functions;
19
20 FBlockListener::FBlockListener()
21 {
22 }
23
24 void FBlockListener::action(analysis::FunctionBlock & fblock)
25 {
26     std::wcerr << L"Add function \"" << fblock.getName() << L"\" as " << fblock.getFunctionId() << std::endl;
27     functions[fblock.getFunctionId()] = fblock.getExp()->clone();
28 }
29
30 ast::Exp* FBlockListener::getExp(uint64_t functionId)
31 {
32     auto it = functions.find(functionId);
33     if (it != functions.end())
34     {
35         return it->second;
36     }
37     else
38     {
39         return nullptr;
40     }
41 }