aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parsingtoolbox.h
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2019-03-23 11:33:15 +0100
committerGitHub <noreply@github.com>2019-03-23 11:33:15 +0100
commit8aac692215539f3de44f1f5ee1cb8cdca76068fa (patch)
tree976130b3dfbc8878521cb15fc1c1141906667a79 /parsingtoolbox.h
parent489661ca4599a84033a57a5645e150e4129a70a0 (diff)
parentf42d6ce2ffe9e53e2ac1723e14e8797dc7b2fffd (diff)
downloadOneRoll-8aac692215539f3de44f1f5ee1cb8cdca76068fa.tar.gz
OneRoll-8aac692215539f3de44f1f5ee1cb8cdca76068fa.zip
Merge pull request #37 from Rolisteam/stringParsing
String parsing
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;