private void processBinaryOperators(List<ExpressionElement> list) throws ExpressionException {
		List<Set<ExpressionOperator>> ops = ExpressionOperator.getBinaryOperatorsByPrecedence();

		// Each set in the list contains operators at the same precedence, so they all need
		// to be processed at the same time so that they are processed left to right (which 
		// corresponds to the list order)
		for (Set<ExpressionOperator> set : ops) {
			processBinaryOperators(list, set);
		}
	}
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