diff options
Diffstat (limited to 'node/scalaroperatornode.h')
| -rw-r--r-- | node/scalaroperatornode.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/node/scalaroperatornode.h b/node/scalaroperatornode.h new file mode 100644 index 0000000..96324ba --- /dev/null +++ b/node/scalaroperatornode.h @@ -0,0 +1,32 @@ +#ifndef SCALAROPERATORNODE_H +#define SCALAROPERATORNODE_H + +#include <QMap> +#include <QChar> + +#include "executionnode.h" + + +class ScalarOperatorNode : public ExecutionNode +{ +public: + enum ScalarOperator {PLUS,MINUS,DIVIDE,MULTIPLICATION}; + ScalarOperatorNode(); + virtual void run(ExecutionNode*); + bool setOperatorChar(QChar c); + void setInternalNode(ExecutionNode* node); + + +private: + qint64 add(qint64,qint64); + qint64 substract(qint64,qint64); + qint64 divide(qint64,qint64); + qint64 multiple(qint64,qint64); + +private: + ScalarOperator m_myOperator; + ExecutionNode* m_internalNode; + QMap<QChar,ScalarOperator> m_scalarOperationList; +}; + +#endif // SCALAROPERATORNODE_H |