Update CeCILL license where it wasn't done
[scilab.git] / scilab / modules / slint / src / cpp / NotEqualChecker.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2015 - Scilab Enterprises - Calixte DENIZET
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.1-en.txt
10  *
11  */
12
13 #include "checkers/NotEqualChecker.hxx"
14
15 namespace slint
16 {
17
18 void NotEqualChecker::preCheckNode(const ast::Exp & e, SLintContext & context, SLintResult & result)
19 {
20     const ast::OpExp & oe = static_cast<const ast::OpExp &>(e);
21     if (oe.getOper() == ast::OpExp::ne)
22     {
23         std::pair<unsigned int, unsigned int> pos;
24         const Location & lloc = oe.getLeft().getLocation();
25         const Location & rloc = oe.getRight().getLocation();
26         Location loc(lloc.last_line, rloc.first_line, lloc.last_column, rloc.first_column - 1);
27         if (context.getPosition(loc, pos))
28         {
29             const wchar_t * code = context.getCode();
30             while (code[pos.first] == L' ' || code[pos.first] == L'\t')
31             {
32                 ++pos.first;
33             }
34             while (code[pos.second] == L' ' || code[pos.second] == L'\t')
35             {
36                 --pos.second;
37             }
38             const std::wstring _op(code + pos.first, code + pos.second + 1);
39             if (pos.first < pos.second && _op != op)
40             {
41                 result.report(context, e.getLocation(), *this, _("Operator \'%s\' should be used rather than \'%s\'."), op, _op);
42             }
43         }
44     }
45 }
46
47 void NotEqualChecker::postCheckNode(const ast::Exp & e, SLintContext & context, SLintResult & result)
48 {
49 }
50
51 const std::string NotEqualChecker::getName() const
52 {
53     return "NotEqualChecker";
54 }
55 }