Merge remote-tracking branch 'origin/master' into jit
[scilab.git] / scilab / modules / ast / src / cpp / ast / shortcutvisitor.cpp
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
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 #include "shortcutvisitor.hxx"
14
15 namespace ast
16 {
17 void ShortCutVisitor::visit(const LogicalOpExp &e)
18 {
19     ShortCutVisitor SCLeft;
20     e.getLeft().accept(SCLeft);
21
22     ShortCutVisitor SCRight;
23     e.getRight().accept(SCRight);
24
25     switch (e.getOper())
26     {
27         case LogicalOpExp::logicalOr :
28             const_cast<LogicalOpExp&>(e).setOper(LogicalOpExp::logicalShortCutOr);
29             break;
30         case LogicalOpExp::logicalAnd :
31             const_cast<LogicalOpExp&>(e).setOper(LogicalOpExp::logicalShortCutAnd);
32             break;
33         default :
34             // Do Nothing !
35             break;
36     }
37 }
38 }