Add a lint tool for Scilab's code
[scilab.git] / scilab / modules / slint / src / cpp / SLintChecker.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-en.txt
10  *
11  */
12
13 #include "checkers/SLintChecker.hxx"
14
15 namespace slint
16 {
17 std::unordered_set<std::wstring> SLintChecker::constants = SLintChecker::init();
18
19 std::unordered_set<std::wstring> SLintChecker::init()
20 {
21     std::unordered_set<std::wstring> _constants;
22     _constants.emplace(L"%pi");
23     _constants.emplace(L"%eps");
24     _constants.emplace(L"%e");
25     _constants.emplace(L"%i");
26     _constants.emplace(L"%nan");
27     _constants.emplace(L"%inf");
28     _constants.emplace(L"%t");
29     _constants.emplace(L"%f");
30     _constants.emplace(L"%T");
31     _constants.emplace(L"%F");
32     _constants.emplace(L"SCI");
33     _constants.emplace(L"WSCI");
34     _constants.emplace(L"SCIHOME");
35     _constants.emplace(L"TMPDIR");
36
37     return _constants;
38 }
39
40 bool SLintChecker::isScilabConstant(const std::wstring & name)
41 {
42     return constants.find(name) != constants.end();
43 }
44
45 void SLintChecker::setData(void * _data)
46 {
47     data = _data;
48 }
49
50 void * SLintChecker::getData() const
51 {
52     return data;
53 }
54
55 bool SLintChecker::isFileChecker() const
56 {
57     return false;
58 }
59
60 void SLintChecker::preCheckFile(SLintContext & context, SLintResult & result)
61 {
62
63 }
64
65 void SLintChecker::postCheckFile(SLintContext & context, SLintResult & result)
66 {
67
68 }
69
70 const std::wstring & SLintChecker::getId() const
71 {
72     return checkerId;
73 }
74 }