Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int Expression::Equals()
- {
- int evaluator = 0;
- int tmp = 0;
- stack<int> num;
- char op;
- for(int i = 0; i < postfix.size(); i++)
- {
- postfix[i].display();
- if(postfix[i].get_type() == letter)
- {
- cout << "inside letter" << endl;
- num.push(postfix[i].get_variable());
- }
- else if(postfix[i].get_type() == integer)
- {
- cout << "inside integer" << endl;
- tmp = stoi(postfix[i].get_token());
- num.push(tmp);
- }
- else if(postfix[i].get_type() == op)
- {
- cout << "inside op" << endl;
- evaluator = num.top();
- cout << evaluator << endl;
- num.pop();
- if(postfix[i].get_token() == "+")
- {
- evaluator += num.top();
- num.pop();
- }
- else if(postfix[i].get_token() == "-")
- {
- evaluator -= num.top();
- num.pop();
- }
- else if(postfix[i].get_token() == "*")
- {
- evaluator *= num.top();
- num.pop();
- }
- else if(postfix[i].get_token() == "/")
- {
- evaluator /= num.top();
- num.pop();
- }
- else if(postfix[i].get_token() == "%")
- {
- evaluator %= num.top();
- num.pop();
- }
- num.push(evaluator);
- }
- else
- cout << "inside nothing" << endl;
- }
- return evaluator;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement