diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-05-23 23:47:00 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-05-23 23:47:00 +0300 |
commit | 04dc442ed114e37bcd7a3c2722ea38bab27023a9 (patch) | |
tree | 8b3ff2ab6087c31bc36fb2e514b78c882865b6e5 /src | |
parent | c6adf05890f2786e43980c6e17f949c8a820f07d (diff) | |
download | mplint-04dc442ed114e37bcd7a3c2722ea38bab27023a9.tar.gz mplint-04dc442ed114e37bcd7a3c2722ea38bab27023a9.tar.bz2 mplint-04dc442ed114e37bcd7a3c2722ea38bab27023a9.tar.xz mplint-04dc442ed114e37bcd7a3c2722ea38bab27023a9.zip |
Now rules adding self rules list.
Diffstat (limited to 'src')
-rw-r--r-- | src/lintmanager.cpp | 13 | ||||
-rw-r--r-- | src/lintmanager.h | 10 | ||||
-rw-r--r-- | src/main.cpp | 2 | ||||
-rw-r--r-- | src/rulebase.cpp | 3 | ||||
-rw-r--r-- | src/rules/dump.cpp | 5 |
5 files changed, 25 insertions, 8 deletions
diff --git a/src/lintmanager.cpp b/src/lintmanager.cpp index 312ddd6..69cd21c 100644 --- a/src/lintmanager.cpp +++ b/src/lintmanager.cpp @@ -32,15 +32,20 @@ #include "localconsts.h" -LintManager::LintManager(std::string path) +LintManager lint; + +LintManager::LintManager() +{ +} + +void LintManager::run(std::string path) { - registerRules(); enumFiles(path); } -void LintManager::registerRules() +void LintManager::addRule(RuleBase *const rule) { - mRules.push_back(new Dump); + mRules.push_back(rule); } void LintManager::enumFiles(std::string path) diff --git a/src/lintmanager.h b/src/lintmanager.h index 9d7fe1f..4fe6902 100644 --- a/src/lintmanager.h +++ b/src/lintmanager.h @@ -31,7 +31,11 @@ class RuleBase; class LintManager final { public: - LintManager(std::string path); + LintManager(); + + void run(std::string path); + + void addRule(RuleBase *const rule); protected: void enumFiles(std::string path); @@ -42,8 +46,6 @@ class LintManager final void readFile(); - void registerRules(); - void selectRulesForFile(); void applyRulesToFile(); @@ -58,4 +60,6 @@ class LintManager final std::string mFileName; }; +extern LintManager lint; + #endif // LINTMANAGER_H diff --git a/src/main.cpp b/src/main.cpp index 88f431b..af3dbb9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,6 +24,6 @@ int main(int argc A_UNUSED, char *argv[] A_UNUSED) { - LintManager lint(".."); + lint.run(".."); return 0; } diff --git a/src/rulebase.cpp b/src/rulebase.cpp index dfb3f1d..7a53c9b 100644 --- a/src/rulebase.cpp +++ b/src/rulebase.cpp @@ -20,12 +20,15 @@ #include "rulebase.h" +#include "lintmanager.h" + #include "localconsts.h" RuleBase::RuleBase() : file(), line(-1) { + lint.addRule(this); } void RuleBase::print(const std::string &text) const diff --git a/src/rules/dump.cpp b/src/rules/dump.cpp index 163cf54..3140e6a 100644 --- a/src/rules/dump.cpp +++ b/src/rules/dump.cpp @@ -22,6 +22,11 @@ #include "localconsts.h" +namespace +{ + Dump instance; +} + Dump::Dump() { addMask("(.+)[.]cpp"); |