23 #ifndef INFIXTOPOSTFIX_H_ 24 #define INFIXTOPOSTFIX_H_ 66 QString
convert(
const QString &infix);
83 void closeParenthesis(QString &postfix, std::stack<InfixOperator> &theStack);
86 void checkArgument(QString funcName,
int argNum, QString argument);
98 InfixOperator(
int prec, QString inString,
bool isFunc =
false) {
100 m_inputString = inString;
101 m_outputString = inString;
102 m_isFunction = isFunc;
106 bool isFunc =
false) {
108 m_inputString = inString;
109 m_outputString = outString;
110 m_isFunction = isFunc;
113 const QString &inputString()
const {
114 return m_inputString;
117 const QString &outputString()
const {
118 return m_outputString;
121 int precedence()
const {
125 bool isFunction()
const {
132 QString m_inputString;
133 QString m_outputString;
149 m_numArguments = argCount;
152 InfixFunction(QString inString, QString outString,
int argCount) :
154 m_numArguments = argCount;
157 int argumentCount()
const {
158 return m_numArguments;
QString formatFunctionCalls(QString equation)
This method looks through equation for function calls, parenthesizes them, and calls itself again wit...
QString tokenizeEquation(const QString &equation)
This method will add spaces between all operators and numbers, making it possible to get each element...
bool isFunction(QString representation)
This method will return true if 'representation' is a known function.
QString convert(const QString &infix)
This method converts infix to postfix.
virtual InfixOperator * findOperator(QString representation)
This method will return a pointer to the operator represented by 'representation. ...
InfixOperator and InfixFunction are helper classes for InfixToPostfix.
InfixOperator and InfixFunction are helper classes for InfixToPostfix.
void uninitialize()
This cleans the known operators/functions list.
void addOperator(QString &postfix, const InfixOperator &op, std::stack< InfixOperator > &theStack)
This is straight from the algorithm found on page 159 of "Data Structures & Algorithms in Java" Secon...
Converter for math equations.
Namespace for ISIS/Bullet specific routines.
void closeParenthesis(QString &postfix, std::stack< InfixOperator > &theStack)
This is straight from the algorithm found on page 159 of "Data Structures & Algorithms in Java" Secon...
InfixToPostfix()
Constructor.
void initialize()
This populates the known operators/functions list.
QString cleanSpaces(QString equation)
This function takes a space-delimited string and removes empty delimiters.
virtual bool isKnownSymbol(QString representation)
This method will return true if it believes the argument represents a valid function or operator...