Merge remote-tracking branch 'origin/master' into windows
[scilab.git] / scilab / modules / ast / src / cpp / analysis / VisitVarDec.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2015 - 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 #include "AnalysisVisitor.hxx"
17
18 namespace analysis
19 {
20
21 void AnalysisVisitor::visit(ast::VarDec & e)
22 {
23     // VarDec is only used in For loop for iterator declaration
24     logger.log("VarDec", e.getLocation());
25     const symbol::Symbol & sym = e.getSymbol();
26     if (e.getInit().isListExp())
27     {
28         ast::ListExp & le = static_cast<ast::ListExp &>(e.getInit());
29         //e.setListInfo(ForList64());
30         le.accept(*this);
31         Result & res = getResult();
32         Info & info = dm.define(sym, res.getType(), res.isAnInt(), &e);
33         info.setRange(res.getRange());
34         e.getDecorator().res = res;
35     }
36 }
37
38 } // namespace analysis