summaryrefslogtreecommitdiffstats
path: root/src/qtconcurrent/codegenerator/src
diff options
context:
space:
mode:
Diffstat (limited to 'src/qtconcurrent/codegenerator/src')
-rw-r--r--src/qtconcurrent/codegenerator/src/codegenerator.cpp127
-rw-r--r--src/qtconcurrent/codegenerator/src/codegenerator.h191
2 files changed, 0 insertions, 318 deletions
diff --git a/src/qtconcurrent/codegenerator/src/codegenerator.cpp b/src/qtconcurrent/codegenerator/src/codegenerator.cpp
deleted file mode 100644
index 9f3df01eb..000000000
--- a/src/qtconcurrent/codegenerator/src/codegenerator.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "codegenerator.h"
-#include <qdebug.h>
-namespace CodeGenerator
-{
-
-//Convenience constructor so you can say Item("foo")
-Item::Item(const char * const text) : generator(Text(QByteArray(text)).generator) {}
-
-int BaseGenerator::currentCount(GeneratorStack * const stack) const
-{
- const int stackSize = stack->count();
- for (int i = stackSize - 1; i >= 0; --i) {
- BaseGenerator const * const generator = stack->at(i);
- switch (generator->type) {
- case RepeaterType: {
- RepeaterGenerator const * const repeater = static_cast<RepeaterGenerator const * const>(generator);
- return repeater->currentRepeat;
- } break;
- case GroupType: {
- GroupGenerator const * const group = static_cast<GroupGenerator const * const>(generator);
- return group->currentRepeat;
- } break;
- default:
- break;
- }
- }
- return -1;
-}
-
-int BaseGenerator::repeatCount(GeneratorStack * const stack) const
-{
- const int stackSize = stack->count();
- for (int i = stackSize - 1; i >= 0; --i) {
- BaseGenerator const * const generator = stack->at(i);
- switch (generator->type) {
- case RepeaterType: {
- RepeaterGenerator const * const repeater = static_cast<RepeaterGenerator const * const>(generator);
- return repeater->currentRepeat;
- } break;
-/* case GroupType: {
- GroupGenerator const * const group = static_cast<GroupGenerator const * const>(generator);
- return group->currentRepeat;
- } break;
-*/
- default:
- break;
- }
- }
- return -1;
-}
-
-QByteArray RepeaterGenerator::generate(GeneratorStack * const stack)
-{
- GeneratorStacker stacker(stack, this);
- QByteArray generated;
- for (int i = repeatOffset; i < repeatCount + repeatOffset; ++i) {
- currentRepeat = i;
- generated += childGenerator->generate(stack);
- }
- return generated;
-};
-
-QByteArray GroupGenerator::generate(GeneratorStack * const stack)
-{
- const int repeatCount = currentCount(stack);
- GeneratorStacker stacker(stack, this);
- QByteArray generated;
-
- if (repeatCount > 0)
- generated += prefix->generate(stack);
-
- for (int i = 1; i <= repeatCount; ++i) {
- currentRepeat = i;
- generated += childGenerator->generate(stack);
- if (i != repeatCount)
- generated += separator->generate(stack);
- }
-
- if (repeatCount > 0)
- generated += postfix->generate(stack);
-
- return generated;
-};
-
-const Compound operator+(const Item &a, const Item &b)
-{
- return Compound(a, b);
-}
-
-const Compound operator+(const Item &a, const char * const text)
-{
- return Compound(a, Text(text));
-}
-
-const Compound operator+(const char * const text, const Item &b)
-{
- return Compound(Text(text), b);
-}
-
-} \ No newline at end of file
diff --git a/src/qtconcurrent/codegenerator/src/codegenerator.h b/src/qtconcurrent/codegenerator/src/codegenerator.h
deleted file mode 100644
index 8fc92ee58..000000000
--- a/src/qtconcurrent/codegenerator/src/codegenerator.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef CODEGENERATOR_H
-#define CODEGENERATOR_H
-
-#include <QByteArray>
-#include <QString>
-#include <QList>
-#include <QStack>
-
-namespace CodeGenerator
-{
- enum GeneratorType {NoopType, CompoundType, TextType, RepeaterType, CounterType, GroupType};
- class BaseGenerator;
- typedef QStack<BaseGenerator *> GeneratorStack;
-
- template <typename ValueType>
- class Stacker {
- public:
- Stacker(QStack<ValueType> *stack, ValueType value) : stack(stack) { stack->push(value); }
- ~Stacker() { stack->pop();}
- private:
- QStack<ValueType> *stack;
- };
- typedef Stacker<BaseGenerator *> GeneratorStacker;
-
- class BaseGenerator
- {
- public:
- BaseGenerator(GeneratorType type = NoopType) : type(type) {}
- virtual ~BaseGenerator() {};
- virtual QByteArray generate(GeneratorStack *stack) { Q_UNUSED(stack); return QByteArray(); };
- int currentCount(GeneratorStack *stack) const;
- int repeatCount(GeneratorStack *stack) const;
- GeneratorType type;
- };
-
- class Item
- {
- public:
- Item(BaseGenerator * const base) : generator(base) {}
- Item(const char * const text);
- QByteArray generate() const
- { GeneratorStack stack; return generator->generate(&stack); }
- // ### TODO: Fix memory leak!
- // QExplicitlySharedDataPointer<BaseGenerator> generator;
- BaseGenerator * const generator;
- };
-
- class CompoundGenerator : public BaseGenerator
- {
- public:
- CompoundGenerator(BaseGenerator * const a, BaseGenerator * const b)
- : BaseGenerator(CompoundType), a(a), b(b) {}
- virtual QByteArray generate(GeneratorStack *stack)
- { return a->generate(stack) + b->generate(stack); };
- protected:
- BaseGenerator * const a;
- BaseGenerator * const b;
- };
-
- class Compound : public Item
- {
- public:
- Compound(const Item &a, const Item &b) : Item(new CompoundGenerator(a.generator, b.generator)) {}
- };
-
- class TextGenerator : public BaseGenerator
- {
- public:
- TextGenerator(const QByteArray &text) : BaseGenerator(TextType), text(text) {}
- virtual QByteArray generate(GeneratorStack *) { return text; };
- protected:
- QByteArray text;
- };
-
- class Text : public Item {
- public:
- Text(const QByteArray &text) : Item(new TextGenerator(text)) {}
- Text(const char * const text) : Item(new TextGenerator(QByteArray(text))) {}
- };
-
- class RepeaterGenerator : public BaseGenerator
- {
- public:
- RepeaterGenerator(BaseGenerator * const childGenerator)
- : BaseGenerator(RepeaterType), repeatCount(1), repeatOffset(0), childGenerator(childGenerator) {}
- virtual QByteArray generate(GeneratorStack *stack);
-
- int repeatCount;
- int repeatOffset;
- int currentRepeat;
- BaseGenerator * const childGenerator;
- };
-
- class Repeater : public Item {
- public:
- Repeater(const Item &item) : Item(new RepeaterGenerator(item.generator)) {}
- void setRepeatCount(int count)
- { static_cast<RepeaterGenerator * const>(generator)->repeatCount = count; }
- void setRepeatOffset(int offset)
- { static_cast<RepeaterGenerator * const>(generator)->repeatOffset = offset; }
- };
-
- class CounterGenerator : public BaseGenerator
- {
- public:
- CounterGenerator() : BaseGenerator(CounterType), offset(0), increment(1), reverse(false) {}
- QByteArray generate(GeneratorStack *stack)
- {
- if (reverse)
- return QByteArray::number(repeatCount(stack) - (currentCount(stack) * increment) + offset + 1);
- else
- return QByteArray::number((currentCount(stack) * increment) + offset);
- }
- int offset;
- int increment;
- bool reverse;
- };
-
- class Counter : public Item {
- public:
- Counter() : Item(new CounterGenerator()) {}
- Counter(int offset) : Item(new CounterGenerator()) { setOffset(offset); }
- void setOffset(int offset)
- { static_cast<CounterGenerator *>(generator)->offset = offset; }
- void setIncrement(int increment)
- { static_cast<CounterGenerator *>(generator)->increment = increment; }
- void setReverse(bool reverse)
- { static_cast<CounterGenerator *>(generator)->reverse = reverse; }
-
- };
-
- class GroupGenerator : public BaseGenerator
- {
- public:
- GroupGenerator(BaseGenerator * const childGenerator)
- : BaseGenerator(GroupType), currentRepeat(0), childGenerator(childGenerator),
- separator(new BaseGenerator()), prefix(new BaseGenerator()), postfix(new BaseGenerator()) { }
- virtual QByteArray generate(GeneratorStack *stack);
- int currentRepeat;
- BaseGenerator * const childGenerator;
- BaseGenerator *separator;
- BaseGenerator *prefix;
- BaseGenerator *postfix;
- };
-
- class Group : public Item
- {
- public:
- Group(const Item &item) : Item(new GroupGenerator(item.generator)) { setSeparator(", "); }
- void setSeparator(const Item &separator)
- { static_cast<GroupGenerator *>(generator)->separator = separator.generator; }
- void setPrefix(const Item &prefix)
- { static_cast<GroupGenerator *>(generator)->prefix = prefix.generator; }
- void setPostfix(const Item &postfix)
- { static_cast<GroupGenerator *>(generator)->postfix = postfix.generator; }
- };
-
- const Compound operator+(const Item &a, const Item &b);
- const Compound operator+(const Item &a, const char * const text);
- const Compound operator+(const char * const text, const Item &b);
-
-} //namespace CodeGenerator
-
-#endif