8#ifndef INFIXTOPOSTFIX_H_
9#define INFIXTOPOSTFIX_H_
16#include <QRegularExpression>
52 QString
convert(
const QString &infix);
66 QString formatFunctionCalls(QString equation);
67 QString cleanSpaces(QString equation);
69 void closeParenthesis(QString &postfix, std::stack<InfixOperator> &theStack);
70 void addOperator(QString &postfix,
const InfixOperator &op, std::stack<InfixOperator> &theStack);
71 bool isFunction(QString representation);
72 void checkArgument(QString funcName,
int argNum, QString argument);
86 m_inputString = inString;
87 m_outputString = inString;
88 m_isFunction = isFunc;
92 bool isFunc =
false) {
94 m_inputString = inString;
95 m_outputString = outString;
96 m_isFunction = isFunc;
100 return m_inputString;
104 return m_outputString;
118 QString m_inputString;
119 QString m_outputString;
135 m_numArguments = argCount;
140 m_numArguments = argCount;
144 return m_numArguments;
InfixOperator and InfixFunction are helper classes for InfixToPostfix.
Definition InfixToPostfix.h:131
int argumentCount() const
Definition InfixToPostfix.h:143
InfixFunction(QString inString, int argCount)
Definition InfixToPostfix.h:133
InfixFunction(QString inString, QString outString, int argCount)
Definition InfixToPostfix.h:138
InfixOperator and InfixFunction are helper classes for InfixToPostfix.
Definition InfixToPostfix.h:82
InfixOperator(int prec, QString inString, bool isFunc=false)
Definition InfixToPostfix.h:84
const QString & outputString() const
Definition InfixToPostfix.h:103
const QString & inputString() const
Definition InfixToPostfix.h:99
InfixOperator(int prec, QString inString, QString outString, bool isFunc=false)
Definition InfixToPostfix.h:91
bool isFunction() const
Definition InfixToPostfix.h:111
int precedence() const
Definition InfixToPostfix.h:107
virtual InfixOperator * findOperator(QString representation)
This method will return a pointer to the operator represented by 'representation.
Definition InfixToPostfix.cpp:347
QString convert(const QString &infix)
This method converts infix to postfix.
Definition InfixToPostfix.cpp:139
virtual bool isKnownSymbol(QString representation)
This method will return true if it believes the argument represents a valid function or operator.
Definition InfixToPostfix.cpp:253
virtual ~InfixToPostfix()
Definition InfixToPostfix.cpp:23
InfixToPostfix()
Constructor.
Definition InfixToPostfix.cpp:19
QString tokenizeEquation(const QString &equation)
This method will add spaces between all operators and numbers, making it possible to get each element...
Definition InfixToPostfix.cpp:369
QList< InfixOperator * > p_operators
Definition InfixToPostfix.h:60
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16