private void processUnaryOperators(List<ExpressionElement> list) throws ExpressionException {

		int unaryOperatorIndex = findValidUnaryOperator(list);
		while (unaryOperatorIndex >= 0) {
			ExpressionOperator operator = (ExpressionOperator) list.get(unaryOperatorIndex);
			ExpressionValue value = (ExpressionValue) list.get(unaryOperatorIndex + 1);
			ExpressionValue newValue = value.applyUnaryOperator(operator);
			list.remove(unaryOperatorIndex);
			list.set(unaryOperatorIndex, newValue);

			unaryOperatorIndex = findValidUnaryOperator(list);
		}

	}
Evaluates a list of valid expression elements into a single final value.
@param list the list of valid expression elements.
@return the final value the expression evaluates to
@throws ExpressionException if sequence of expression elements is not in a valid order such
that it evaluates to a single value. (such as two values not being separated by an operator)
Ghidra/Framework/Generic/src/main/java/generic/expressions/ExpressionEvaluator.java