aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/diceparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'diceparser.h')
-rw-r--r--diceparser.h38
1 files changed, 10 insertions, 28 deletions
diff --git a/diceparser.h b/diceparser.h
index 48f2e0d..6e99bcd 100644
--- a/diceparser.h
+++ b/diceparser.h
@@ -10,6 +10,7 @@
#include "validator.h"
#include "range.h"
#include "booleancondition.h"
+#include "parsingtoolbox.h"
/**
* @mainpage DiceParser
@@ -69,14 +70,10 @@ public:
*/
void displayResult();
+ bool readExpression(QString& str,ExecutionNode* & node);
+
private:
- /**
- * @brief readNumber read number in the given str and remove from the string the read character.
- * @param str the command line
- * @param myNumber reference to the found number
- * @return true, succeed to read number, false otherwise.
- */
- bool readNumber(QString& str, int& myNumber);
+
/**
* @brief readDice
* @param str
@@ -103,39 +100,24 @@ private:
* @brief setCurrentNode
* @param node
*/
- void setCurrentNode(ExecutionNode* node);
+ ExecutionNode* getLatestNode(ExecutionNode* node);
/**
* @brief readOption
*/
- bool readOption(QString&,ExecutionNode* node, DiceRollerNode* diceNode);
+ bool readOption(QString&,ExecutionNode* node, bool hasDice = true);
- /**
- * @brief addSort
- * @param b
- */
- ExecutionNode* addSort(ExecutionNode*, bool b);
-
- /**
- * @brief readValidator
- * @param str
- * @param validator
- * @return
- */
- Validator* readValidator(QString& str);
-
-
- bool readLogicOperator(QString& str,BooleanCondition::LogicOperator& condition);
-
- bool readParentheses(QString& str);
+ DiceRollerNode* addRollDiceNode(qint64 faces,ExecutionNode*);
private:
QMap<QString,DiceOperator>* m_mapDiceOp;
QMap<QString,OptionOperator>* m_OptionOp;
- QMap<QString,BooleanCondition::LogicOperator>* m_logicOp;
+ QMap<QString,QString>* m_aliasMap;
+
ExecutionNode* m_start;
ExecutionNode* m_current;
QString m_command;
+ ParsingToolBox* m_parsingToolbox;
};
/**