digiKam
Loading...
Searching...
No Matches
parser.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2009-08-11
7 * Description : the main parser object for the AdvancedRename utility
8 *
9 * SPDX-FileCopyrightText: 2009-2012 by Andi Clemens <andi dot clemens at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QList>
20#include <QMap>
21#include <QString>
22
23// Local includes
24
25#include "modifier.h"
26#include "option.h"
27
28namespace Digikam
29{
30
31class Modifier;
32class Option;
33
34class Parser
35{
36
37public:
38
39 explicit Parser();
40 virtual ~Parser();
41
42 void reset();
43
44 QString parse(ParseSettings& settings);
45
46 RulesList options() const;
47 RulesList modifiers() const;
48
49 bool tokenAtPosition(ParseSettings& settings, int pos);
50 bool tokenAtPosition(ParseSettings& settings, int pos, int& start, int& length);
51
53
59 static bool parseStringIsValid(const QString& str);
60
61protected:
62
63 void registerOption(Rule* option);
64 void unregisterOption(const Rule* option);
65
66 void registerModifier(Rule* modifier);
67 void unregisterModifier(const Rule* modifier);
68
69private:
70
71 ParseResults results(ParseSettings& settings);
72
79 ParseResults applyModifiers(const ParseSettings& _settings, ParseResults& results);
80
81private:
82
83 // Disable
84 Parser(const Parser&) = delete;
85 Parser& operator=(const Parser&) = delete;
86
87private:
88
89 class Private;
90 Private* const d = nullptr;
91};
92
93} // namespace Digikam
Definition parseresults.h:27
Definition parsesettings.h:33
Definition parser.h:35
void unregisterModifier(const Rule *modifier)
Definition parser.cpp:159
virtual ~Parser()
Definition parser.cpp:76
void reset()
Definition parser.cpp:87
RulesList modifiers() const
Definition parser.cpp:112
void unregisterOption(const Rule *option)
Definition parser.cpp:127
void registerModifier(Rule *modifier)
Definition parser.cpp:149
bool tokenAtPosition(ParseSettings &settings, int pos)
Definition parser.cpp:248
static bool parseStringIsValid(const QString &str)
Definition parser.cpp:100
ParseResults invalidModifiers(ParseSettings &settings)
Definition parser.cpp:200
void registerOption(Rule *option)
Definition parser.cpp:117
Parser()
Definition parser.cpp:54
RulesList options() const
Definition parser.cpp:107
QString parse(ParseSettings &settings)
Definition parser.cpp:207
Definition rule.h:32
Definition datefolderview.cpp:34
QList< Rule * > RulesList
Definition rule.h:180