Create a calculator - support operations such as +,-,*,/,^ - Input is going to be a postfix expression ending with a = - Each token will be separated by a space - Parse operation reads tokens and puts them in the q - Write the token class class Token { friend class BXTree; char a[28]; public: bool IsOperator(); double value(); friend istream& operator>>(istream&,Token&); }; IsOperator() if(strcmp(a,"+") == 0) return true; if(strcmp(a,"-") == 0) return true; . . . return false; Value() return atod(a); // if there is no atod try atof Create a class called calculator with two private data members: - DoubleList q - Doublestack s Two public member functions: - void parse(istream& in) - Read tokens and put them in the list q - double evaluate() while q is not empty { delete tok from position 1 in the q if tok is not an operator add tok.value() to s else { delete op2 from s delete op1 from s switch(tok.a[0]) case '+': add (op1 + op2) to s break; case '-': add (op1 - op2) to s break; ... ... } } return Top of s - Try your program for the following expressions 3 3 ^ = answer: 27 9 3 / = answer: 3 8 9 + = answer: 17 8 7 9.8 2.3 - * + = answer: 60.5