The ExpressionStack is used for generating an expression tree out of
a stream of expressions in infix notation. Expressions should implement
the ExpressionObject interface.
To use, instantiate an ExpressionStack object and provide your stream
of expressions to this ExpressionStack via the add(...) method. When
done, call process() to process through the expressions and generate
the expression tree. The tree is built via ExpressionObject's
addOperand(...) and closeOperator(...) methods.