Pseudocode for Infix Expression Evaluation

Source: Data Abstraction and Problem Solving with C++: Walls and Mirrors, Seventh Edition, by Frank M. Carrano and Timothy Henry, Addison Wesley, 2017.

Here is Carrano's pseudocode for the infix to postfix conversion step:

	Initialize postfix to empty
	Initialize the operator stack to empty
	For each character ch in the infix string
	    Switch (ch)
	      case operand:
	        append ch to end of postfix
	        break
	      case '(':
	        push ch onto the operator stack
	        break
              case ')':
	          // pop stack until matching '('
	        While stack top is not '('
	          append the stack top to postfix
	          pop the stack
	        pop the stack  // remove the '('
	        break
	      case operator:
	        While the stack is not empty and the stack top is not '('
	                and precedence of ch <= precedence of stack top
	            append the stack top to postfix
                    pop the stack
                push ch onto the stack
                break
	While the stack is not empty
	    append the stack top to postfix
            pop the stack

And here is his pseudocode for the evaluation of the postfix expression:

	Initialize the operand stack to empty
	For each character ch in the postfix string
	    if ch is an operand
	        push the value that ch represents onto the operand stack
	    else // ch is a binary operator
	        set operand2 to the top of the operand stack
		pop the stack
	        set operand1 to the top of the operand stack
		pop the stack
		apply the operation that ch represents to operand1 and
	            operand2, and push the result onto the stack
	When the loop is finished, the operand stack will contain one item,
	  the result of evaluating the expression