]> andersk Git - svn-all-fast-export.git/blob - src/ruleparser.h
Add some more line number information
[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             QString branchFrom;
34         };
35
36         QString name;
37         QList<Branch> branches;
38         int lineNumber;
39
40         Repository() : lineNumber(0) { }
41     };
42
43     struct Match
44     {
45         QRegExp rx;
46         QString repository;
47         QString branch;
48         QString path;
49         int minRevision;
50         int maxRevision;
51         int lineNumber;
52
53         Match() : minRevision(-1), maxRevision(-1), lineNumber(0) { }
54     };
55
56     Rules(const QString &filename);
57     ~Rules();
58
59     QList<Repository> repositories();
60     QList<Match> matchRules();
61
62     void load();
63
64 private:
65     QString filename;
66     QList<Repository> m_repositories;
67     QList<Match> m_matchRules;
68 };
69
70 #endif
This page took 0.042067 seconds and 5 git commands to generate.