diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-05-25 11:47:10 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-05-25 11:47:10 +0300 |
commit | a30e6e97b64d714aabeef90bafc413898ede2412 (patch) | |
tree | 533132929a4fbfb01498e6c9e19147584927bc14 | |
parent | 847aa8f9b3951448e36e9fd353b94e904cdfd84d (diff) | |
download | mplint-a30e6e97b64d714aabeef90bafc413898ede2412.tar.gz mplint-a30e6e97b64d714aabeef90bafc413898ede2412.tar.bz2 mplint-a30e6e97b64d714aabeef90bafc413898ede2412.tar.xz mplint-a30e6e97b64d714aabeef90bafc413898ede2412.zip |
Add basic rule for constructors.
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/rules/constructor.cpp | 37 | ||||
-rw-r--r-- | src/rules/debug.cpp | 1 | ||||
-rw-r--r-- | src/stringutils.cpp | 10 | ||||
-rw-r--r-- | src/stringutils.h | 3 |
5 files changed, 52 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 642485d..3805f41 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -17,6 +17,7 @@ mplint_SOURCES = \ stringutils.h \ stringvector.h \ template.hpp \ + rules/constructor.cpp \ rules/debug.cpp \ rules/dump.cpp \ rules/license.cpp diff --git a/src/rules/constructor.cpp b/src/rules/constructor.cpp new file mode 100644 index 0000000..e9acb1b --- /dev/null +++ b/src/rules/constructor.cpp @@ -0,0 +1,37 @@ +/* + * The ManaPlus Client + * Copyright (C) 2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "template.hpp" + +registerRuleExt(constructor, "006", "(.+)[.](cpp|h)") + +startRule(constructor) +{ +} + +endRule(constructor) +{ +} + +parseLineRule(constructor) +{ + if (strEndWith(data, "):")) + print("Add space between constructor and \":\"."); +} diff --git a/src/rules/debug.cpp b/src/rules/debug.cpp index 7c16990..f7154a6 100644 --- a/src/rules/debug.cpp +++ b/src/rules/debug.cpp @@ -57,6 +57,7 @@ endRule(debugCpp) parseLineRule(debugCpp) { + // need check what debug.h will be last include in file trim(data); if (data == "#include \"debug.h\"") terminateRule(); diff --git a/src/stringutils.cpp b/src/stringutils.cpp index 05e6a01..d750165 100644 --- a/src/stringutils.cpp +++ b/src/stringutils.cpp @@ -631,6 +631,16 @@ bool strStartWith(const std::string &restrict str1, return str1.substr(0, sz2) == str2; } +bool strEndWith(const std::string &restrict str1, + const std::string &restrict str2) +{ + const size_t sz1 = str1.size(); + const size_t sz2 = str2.size(); + if (sz1 < sz2) + return false; + return str1.substr(sz1 - sz2, sz2) == str2; +} + std::string getDateString() { char buffer[80]; diff --git a/src/stringutils.h b/src/stringutils.h index f7218c0..817114e 100644 --- a/src/stringutils.h +++ b/src/stringutils.h @@ -222,6 +222,9 @@ std::string &removeProtocol(std::string &url); bool strStartWith(const std::string &restrict str, const std::string &restrict start) A_WARN_UNUSED; +bool strEndWith(const std::string &restrict str, + const std::string &restrict end) A_WARN_UNUSED; + std::string getDateString() A_WARN_UNUSED; signed char parseBoolean(const std::string &value); |