diff options
-rw-r--r-- | src/rules/dump.cpp | 19 | ||||
-rw-r--r-- | src/template.hpp | 23 |
2 files changed, 34 insertions, 8 deletions
diff --git a/src/rules/dump.cpp b/src/rules/dump.cpp index 87c1aff..b4cec48 100644 --- a/src/rules/dump.cpp +++ b/src/rules/dump.cpp @@ -20,21 +20,26 @@ #include "template.hpp" -registerRule(dump) +registerRuleExt(dumpCpp, "(.+)[.]cpp") -constructRule(dump) +initRule(dumpCpp) { - addMask("(.+)[.]cpp"); - addMask("(.+)[.]h"); - deleteSelf(); + printRaw("Checking file: " + file); +} + +parseLineRule(dumpCpp) +{ + print(data); } -initRule(dump) +registerRuleExt(dumpH, "(.+)[.]h") + +initRule(dumpH) { printRaw("Checking file: " + file); } -parseLineRule(dump) +parseLineRule(dumpH) { print(data); } diff --git a/src/template.hpp b/src/template.hpp index 3aa0003..2bd9811 100644 --- a/src/template.hpp +++ b/src/template.hpp @@ -35,9 +35,30 @@ class name : public RuleBase \ \ namespace \ { \ - name instance; \ + name instance##name; \ } \ +#define registerRuleExt(name, ext) \ +class name : public RuleBase \ +{ \ + public: \ + name() \ + { \ + setName(#name); \ + addMask(ext); \ + } \ +\ + void init(); \ +\ + void parseLine(const std::string &data); \ +}; \ +\ +namespace \ +{ \ + name instance##name; \ +} \ + + #define constructRule(name) name::name() #define initRule(name) void name::init() #define parseLineRule(name) void name::parseLine(const std::string &data) |