code: private static String evaluateExpressionStack(final Deque<String> operators, final Deque<String> values) {
          while (!operators.isEmpty()) {
              values.push(getBooleanResultAsString(operators.pop(), values.pop(), values.pop()));
          }
          return replaceIntegerStringByBooleanRepresentation(values.pop());
      }
docs: This method takes stacks of operators and values and evaluates possible expressions
  This is done by popping one operator and two values, applying the operator to the values and pushing the result back onto the value stack
  
  @param operators Operators to apply
  @param values    Values
  @return The final result popped of the values stack