aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parsingtoolbox.h
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2019-03-23 11:28:22 +0100
committerRenaud G <renaud@rolisteam.org>2019-03-23 11:28:22 +0100
commit10d0da1c22c94b5361c0a6c76e008c328671ad81 (patch)
treede786f9b2abf5c206146c9ae2eeca1e8ddcc964a /parsingtoolbox.h
parent9d8bb500131d3db603bacbdb91440c62f54f72de (diff)
downloadOneRoll-10d0da1c22c94b5361c0a6c76e008c328671ad81.tar.gz
OneRoll-10d0da1c22c94b5361c0a6c76e008c328671ad81.zip
Add new way to replace pattern in string result.
Diffstat (limited to 'parsingtoolbox.h')
-rw-r--r--parsingtoolbox.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/parsingtoolbox.h b/parsingtoolbox.h
index d7d5943..4b50b6d 100644
--- a/parsingtoolbox.h
+++ b/parsingtoolbox.h
@@ -34,6 +34,32 @@
#include "operationcondition.h"
#include "range.h"
+class SubtituteInfo
+{
+public:
+ SubtituteInfo();
+
+ bool isValid() const;
+
+ int length() const;
+ void setLength(int length);
+
+ int resultIndex() const;
+ void setResultIndex(int valueIndex);
+
+ int position() const;
+ void setPosition(int position);
+
+ int digitNumber() const;
+ void setDigitNumber(int digitNumber);
+
+private:
+ int m_length= 2;
+ int m_digitNumber= 0;
+ int m_resultIndex= -1;
+ int m_position= -1;
+};
+
/**
* @brief The ParsingToolBox is gathering many useful methods for dice parsing.
* Its goal is to make the diceparser a bit lighter.
@@ -200,6 +226,12 @@ public:
static bool readOperand(QString& str, ExecutionNode*& node);
static int findClosingCharacterIndexOf(QChar open, QChar closing, const QString& str, int offset);
+ static QString replaceVariableToValue(const QString& source, QStringList values);
+
+ static SubtituteInfo readVariableFromString(const QString& source, int& start);
+
+ static void readSubtitutionParameters(SubtituteInfo& info, QString& rest);
+
private:
QMap<QString, BooleanCondition::LogicOperator>* m_logicOp;
QMap<QString, CompositeValidator::LogicOperation>* m_logicOperation;