aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2015-04-29 07:44:25 +0200
committerRenaud G <renaud@rolisteam.org>2015-04-29 07:44:25 +0200
commit590fc6528b09bf1abbd90caf31053cd5ef6b439b (patch)
treed2dcbb2c751d9edf9b736a2fa5488fbcf41247dc /node
parent942cf3f75f49d83c4e512d5350f7de69f0ec8aa7 (diff)
parent5c73a6cb13b8c301d0e60f916998c3e683a2b043 (diff)
downloadOneRoll-590fc6528b09bf1abbd90caf31053cd5ef6b439b.tar.gz
OneRoll-590fc6528b09bf1abbd90caf31053cd5ef6b439b.zip
Merge branch 'master' of github.com:obiwankennedy/DiceParser
Diffstat (limited to 'node')
-rw-r--r--node/executionnode.cpp9
-rw-r--r--node/executionnode.h4
-rw-r--r--node/scalaroperatornode.cpp41
-rw-r--r--node/scalaroperatornode.h30
4 files changed, 80 insertions, 4 deletions
diff --git a/node/executionnode.cpp b/node/executionnode.cpp
index 0cb9c0b..dba56fc 100644
--- a/node/executionnode.cpp
+++ b/node/executionnode.cpp
@@ -32,8 +32,15 @@ ExecutionNode* ExecutionNode::getNextNode()
{
return m_nextNode;
}
-QList<ExecutionNode::ERROR_CODE> ExecutionNode::getErrorList()
+QMap<ExecutionNode::ERROR_CODE,QString> ExecutionNode::getExecutionErrorMap()
{
+ if(NULL!=m_nextNode)
+ {
+ foreach (ExecutionNode::ERROR_CODE key, m_nextNode->getExecutionErrorMap().keys())
+ {
+ m_errors.insert(key,m_nextNode->getExecutionErrorMap().value(key));
+ }
+ }
return m_errors;
}
QString ExecutionNode::getHelp()
diff --git a/node/executionnode.h b/node/executionnode.h
index cc40867..834b062 100644
--- a/node/executionnode.h
+++ b/node/executionnode.h
@@ -56,7 +56,7 @@ public:
* @brief getErrorList
* @return
*/
- virtual QList<ExecutionNode::ERROR_CODE> getErrorList();
+ virtual QMap<ExecutionNode::ERROR_CODE,QString> getExecutionErrorMap();
/**
* @brief generateDotTree
@@ -84,7 +84,7 @@ protected:
/**
* @brief m_errors
*/
- QList<ExecutionNode::ERROR_CODE> m_errors;
+ QMap<ExecutionNode::ERROR_CODE,QString> m_errors;
};
#endif // EXECUTIONNODE_H
diff --git a/node/scalaroperatornode.cpp b/node/scalaroperatornode.cpp
index 8dfbc20..b7c183f 100644
--- a/node/scalaroperatornode.cpp
+++ b/node/scalaroperatornode.cpp
@@ -1,3 +1,24 @@
+/***************************************************************************
+* Copyright (C) 2014 by Renaud Guezennec *
+* http://renaudguezennec.homelinux.org/accueil,3.html *
+* *
+* 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. *
+***************************************************************************/
#include "scalaroperatornode.h"
#include <QDebug>
@@ -107,7 +128,7 @@ qreal ScalarOperatorNode::divide(qint64 a,qint64 b)
{
if(b==0)
{
- m_errors.append(DIVIDE_BY_ZERO);
+ m_errors.insert(DIVIDE_BY_ZERO,QObject::tr("Division by zero"));
return 0;
}
return (qreal)a/b;
@@ -160,3 +181,21 @@ void ScalarOperatorNode::generateDotTree(QString& s)
}
s.append(str);
}
+QMap<ExecutionNode::ERROR_CODE,QString> ScalarOperatorNode::getExecutionErrorMap()
+{
+ if(NULL!=m_internalNode)
+ {
+ foreach (ExecutionNode::ERROR_CODE key, m_internalNode->getExecutionErrorMap().keys())
+ {
+ m_errors.insert(key,m_internalNode->getExecutionErrorMap().value(key));
+ }
+ }
+ if(NULL!=m_nextNode)
+ {
+ foreach (ExecutionNode::ERROR_CODE key, m_nextNode->getExecutionErrorMap().keys())
+ {
+ m_errors.insert(key,m_nextNode->getExecutionErrorMap().value(key));
+ }
+ }
+ return m_errors;
+}
diff --git a/node/scalaroperatornode.h b/node/scalaroperatornode.h
index 7193118..e43f6f8 100644
--- a/node/scalaroperatornode.h
+++ b/node/scalaroperatornode.h
@@ -1,3 +1,24 @@
+/***************************************************************************
+* Copyright (C) 2014 by Renaud Guezennec *
+* http://renaudguezennec.homelinux.org/accueil,3.html *
+* *
+* 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 SCALAROPERATORNODE_H
#define SCALAROPERATORNODE_H
@@ -7,6 +28,10 @@
#include "executionnode.h"
#include "result/scalarresult.h"
+
+/**
+ * @brief The ScalarOperatorNode class
+ */
class ScalarOperatorNode : public ExecutionNode
{
public:
@@ -21,6 +46,11 @@ public:
virtual qint64 getPriority() const;
void generateDotTree(QString& s);
+ /**
+ * @brief getErrorList
+ * @return
+ */
+ virtual QMap<ExecutionNode::ERROR_CODE,QString> getExecutionErrorMap();
private:
qint64 add(qint64,qint64);