]> andersk Git - svn-all-fast-export.git/blob - src/ruleparser.h
Beautify the rule debug output
[svn-all-fast-export.git] / src / ruleparser.h
1 /*
2  *  Copyright (C) 2007  Thiago Macieira <thiago@kde.org>
3  *
4  *  This program is free software: you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation, either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #ifndef RULEPARSER_H
19 #define RULEPARSER_H
20
21 #include <QList>
22 #include <QRegExp>
23 #include <QString>
24
25 class Rules
26 {
27 public:
28     struct Repository
29     {
30         struct Branch
31         {
32             QString name;
33         };
34
35         QString name;
36         QList<Branch> branches;
37         int lineNumber;
38
39         Repository() : lineNumber(0) { }
40     };
41
42     struct Match
43     {
44         QRegExp rx;
45         QString repository;
46         QString branch;
47         int minRevision;
48         int maxRevision;
49         int lineNumber;
50
51         enum Action {
52             Ignore,
53             Export,
54             Recurse
55         } action;
56
57         Match() : minRevision(-1), maxRevision(-1), lineNumber(0), action(Ignore) { }
58     };
59
60     Rules(const QString &filename);
61     ~Rules();
62
63     QList<Repository> repositories();
64     QList<Match> matchRules();
65
66     void load();
67
68 private:
69     QString filename;
70     QList<Repository> m_repositories;
71     QList<Match> m_matchRules;
72 };
73
74 #ifndef QT_NO_DEBUG_STREAM
75 class QDebug;
76 QDebug operator<<(QDebug, const Rules::Match &);
77 #endif
78
79 #endif
This page took 0.295562 seconds and 5 git commands to generate.