diff options
| author | 2019-02-12 23:59:24 +0100 | |
|---|---|---|
| committer | 2019-02-12 23:59:24 +0100 | |
| commit | f2051fb35b1ad49c4d940e6fbba2acc98b216e13 (patch) | |
| tree | 03117f493191d35104ac37eba72e916d41c849f2 /diceparser.h | |
| parent | 210a222b894caa3c8af38ccb6653db0fd8491f6e (diff) | |
| download | OneRoll-f2051fb35b1ad49c4d940e6fbba2acc98b216e13.tar.gz OneRoll-f2051fb35b1ad49c4d940e6fbba2acc98b216e13.zip | |
clang format
Diffstat (limited to 'diceparser.h')
| -rw-r--r-- | diceparser.h | 185 |
1 files changed, 106 insertions, 79 deletions
diff --git a/diceparser.h b/diceparser.h index d8cd6ab..bb3f5f3 100644 --- a/diceparser.h +++ b/diceparser.h @@ -1,42 +1,42 @@ /*************************************************************************** -* Copyright (C) 2014 by Renaud Guezennec * -* http://www.rolisteam.org/contact * -* * -* This file is part of DiceParser * -* * -* DiceParser is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License as published by * -* the Free Software Foundation; either version 2 of the License, or * -* (at your option) any later version. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ + * Copyright (C) 2014 by Renaud Guezennec * + * http://www.rolisteam.org/contact * + * * + * This file is part of DiceParser * + * * + * DiceParser is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #ifndef DICEPARSER_H #define DICEPARSER_H -#include <QString> #include <QMap> +#include <QString> -#include "node/executionnode.h" #include "node/dicerollernode.h" +#include "node/executionnode.h" -#include "validator.h" -#include "range.h" #include "booleancondition.h" -#include "parsingtoolbox.h" #include "dicealias.h" #include "highlightdice.h" +#include "parsingtoolbox.h" +#include "range.h" +#include "validator.h" -typedef QList<HighLightDice > ListDiceResult; -typedef QMap<quint64,ListDiceResult > ExportedDiceResult; +typedef QList<HighLightDice> ListDiceResult; +typedef QMap<quint64, ListDiceResult> ExportedDiceResult; class ExplodeDiceNode; /** @@ -55,24 +55,49 @@ class ExplodeDiceNode; */ class DiceParser { - public: /** * @brief The DiceOperator enum gathering all dice operators */ - enum DiceOperator {D,L}; + enum DiceOperator + { + D, + L + }; /** * @brief The DiceSymbol enum */ - enum NodeAction {JumpBackward}; + enum NodeAction + { + JumpBackward + }; /** * @brief The OptionOperator enum gathering all options availables for result. */ - enum OptionOperator {KeepAndExplode,Keep,Reroll,RerollUntil,Explode,Sort,Count,RerollAndAdd,Merge,ifOperator,Painter,Filter,Split,Group,Bind}; + enum OptionOperator + { + KeepAndExplode, + Keep, + Reroll, + RerollUntil, + Explode, + Sort, + Count, + RerollAndAdd, + Merge, + ifOperator, + Painter, + Filter, + Split, + Group, + Bind + }; /** * @brief The CommandOperator enum */ - enum CommandOperator {}; + enum CommandOperator + { + }; /** * @brief DiceParser default constructor @@ -84,11 +109,12 @@ public: virtual ~DiceParser(); /** - * @brief parseLine, method to call for starting the dice roll. It will parse the command and run the execution tree. + * @brief parseLine, method to call for starting the dice roll. It will parse the command and run the execution + * tree. * @param str dice command * @return bool every thing is fine or not */ - bool parseLine(QString str, bool allowAlias = true); + bool parseLine(QString str, bool allowAlias= true); /** * @brief getStartNodeCount * @return @@ -110,7 +136,7 @@ public: * @param node * @return */ - bool readExpression(QString& str,ExecutionNode* & node); + bool readExpression(QString& str, ExecutionNode*& node); /** * @brief displayDotTree - Write the execution tree into file using dot format. * @param filepath absolute or relative path to the tree file. @@ -180,7 +206,7 @@ public: * @brief getErrorList * @return */ - QMap<ExecutionNode::DICE_ERROR_CODE,QString> getErrorMap(); + QMap<ExecutionNode::DICE_ERROR_CODE, QString> getErrorMap(); /** * @brief setPathToHelp set the path to the documentation, this path must be adatped to the lang of application etc… * @param l the path. @@ -198,53 +224,55 @@ public: */ QStringList getAllDiceResult(bool& hasAlias); /** - * @brief hasSeparator allows to know if the current command has separator. - * @return true when the command has separator, false otherwise. - */ - bool hasSeparator()const; + * @brief hasSeparator allows to know if the current command has separator. + * @return true when the command has separator, false otherwise. + */ + bool hasSeparator() const; /** - * @brief readIfInstruction reads the current command to build if node with proper parameters. - * @param str is the command string, if IF istruction is found, the str will be changed, in other case the string is unmodified - * @param trueNode is the branch's beginning to be executed if the IfNode is true. - * @param falseNode is the branch's beginning to be executed if the IfNode is false. - * @return true, ifNode has been found, false otherwise - */ - bool readIfInstruction(QString &str, ExecutionNode* &trueNode, ExecutionNode* &falseNode); + * @brief readIfInstruction reads the current command to build if node with proper parameters. + * @param str is the command string, if IF istruction is found, the str will be changed, in other case the string is + * unmodified + * @param trueNode is the branch's beginning to be executed if the IfNode is true. + * @param falseNode is the branch's beginning to be executed if the IfNode is false. + * @return true, ifNode has been found, false otherwise + */ + bool readIfInstruction(QString& str, ExecutionNode*& trueNode, ExecutionNode*& falseNode); /** * @brief setVariableDictionary * @param variables */ - void setVariableDictionary(const QHash<QString, QString> &variables); + void setVariableDictionary(const QHash<QString, QString>& variables); QString getComment() const; - void setComment(const QString &comment); + void setComment(const QString& comment); - bool readOptionFromNull(QString &str, ExecutionNode *&node); - bool readOperatorFromNull(QString &str, ExecutionNode *&node); + bool readOptionFromNull(QString& str, ExecutionNode*& node); + bool readOperatorFromNull(QString& str, ExecutionNode*& node); - bool readInstructionList(QString &str); - void getDiceResultFromAllInstruction(QList<ExportedDiceResult> &resultList); + bool readInstructionList(QString& str); + void getDiceResultFromAllInstruction(QList<ExportedDiceResult>& resultList); QString humanReadableWarning(); + protected: - bool readParameterNode(QString &str, ExecutionNode *&node); -private: + bool readParameterNode(QString& str, ExecutionNode*& node); +private: /** * @brief readDice * @param str * @return */ - bool readDice(QString& str,ExecutionNode* & node); + bool readDice(QString& str, ExecutionNode*& node); /** * @brief readDiceOperator * @return */ - bool readDiceOperator(QString&,DiceOperator&); + bool readDiceOperator(QString&, DiceOperator&); /** * @brief readDiceExpression * @param node * @return */ - bool readDiceExpression(QString&,ExecutionNode* & node); + bool readDiceExpression(QString&, ExecutionNode*& node); /** * @brief readOperator * @return @@ -256,32 +284,32 @@ private: * @param node * @return */ - bool readCommand(QString& str,ExecutionNode* & node); + bool readCommand(QString& str, ExecutionNode*& node); /** * @brief readOption */ - bool readOption(QString&,ExecutionNode* node);//OptionOperator& option, + bool readOption(QString&, ExecutionNode* node); // OptionOperator& option, - /** - * @brief addRollDiceNode - * @param faces - * @return - */ - DiceRollerNode* addRollDiceNode(qint64 faces,ExecutionNode*); + /** + * @brief addRollDiceNode + * @param faces + * @return + */ + DiceRollerNode* addRollDiceNode(qint64 faces, ExecutionNode*); /** * @brief addExplodeDiceNode * @param faces * @param previous * @return */ - ExplodeDiceNode* addExplodeDiceNode(qint64 faces,ExecutionNode* previous); + ExplodeDiceNode* addExplodeDiceNode(qint64 faces, ExecutionNode* previous); /** * @brief readOperand * @param node * @return */ - bool readOperand(QString&,ExecutionNode* & node); + bool readOperand(QString&, ExecutionNode*& node); /** * @brief readInstructionOperator @@ -295,7 +323,7 @@ private: * @param node * @return */ - bool readNode(QString& str,ExecutionNode* & node); + bool readNode(QString& str, ExecutionNode*& node); /** * @brief getLeafNode @@ -308,27 +336,26 @@ private: * @param notthelast * @return */ - bool hasResultOfType(Result::RESULT_TYPE, ExecutionNode* node, bool notthelast = false); - + bool hasResultOfType(Result::RESULT_TYPE, ExecutionNode* node, bool notthelast= false); private: - QMap<QString,DiceOperator>* m_mapDiceOp; - QMap<QString,OptionOperator>* m_OptionOp; - QMap<QString,NodeAction>* m_nodeActionMap; + QMap<QString, DiceOperator>* m_mapDiceOp; + QMap<QString, OptionOperator>* m_OptionOp; + QMap<QString, NodeAction>* m_nodeActionMap; QList<DiceAlias*>* m_aliasList; QStringList* m_commandList; - QMap<ExecutionNode::DICE_ERROR_CODE,QString> m_errorMap; - QMap<ExecutionNode::DICE_ERROR_CODE,QString> m_warningMap; + QMap<ExecutionNode::DICE_ERROR_CODE, QString> m_errorMap; + QMap<ExecutionNode::DICE_ERROR_CODE, QString> m_warningMap; - ExecutionNode* m_start = nullptr; + ExecutionNode* m_start= nullptr; std::vector<ExecutionNode*> m_startNodes; - //ExecutionNode* m_current; + // ExecutionNode* m_current; QString m_command; ParsingToolBox* m_parsingToolbox; QString m_helpPath; bool m_currentTreeHasSeparator; - bool readBlocInstruction(QString &str, ExecutionNode *&resultnode); + bool readBlocInstruction(QString& str, ExecutionNode*& resultnode); QString m_comment; }; |