Code Duplication    Length = 4-5 lines in 3 locations

app/Vendor/PHPExcel/PHPExcel/Calculation.php 3 locations

@@ 2717-2720 (lines=4) @@
2714
			} elseif ($opCharacter == ')' && $expectingOperator) {			//	Are we expecting to close a parenthesis?
2715
//				echo 'Element is a Closing bracket<br />';
2716
				$expectingOperand = false;
2717
				while (($o2 = $stack->pop()) && $o2['value'] != '(') {		//	Pop off the stack back to the last (
2718
					if ($o2 === NULL) return $this->_raiseFormulaError('Formula Error: Unexpected closing brace ")"');
2719
					else $output[] = $o2;
2720
				}
2721
				$d = $stack->last(2);
2722
				if (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) {	//	Did this parenthesis just close a function?
2723
					$functionName = $matches[1];										//	Get the function name
@@ 2796-2799 (lines=4) @@
2793
2794
			} elseif ($opCharacter == ',') {			//	Is this the separator for function arguments?
2795
//				echo 'Element is a Function argument separator<br />';
2796
				while (($o2 = $stack->pop()) && $o2['value'] != '(') {		//	Pop off the stack back to the last (
2797
					if ($o2 === NULL) return $this->_raiseFormulaError("Formula Error: Unexpected ,");
2798
					else $output[] = $o2;	// pop the argument expression stuff and push onto the output
2799
				}
2800
				//	If we've a comma when we're expecting an operand, then what we actually have is a null operand;
2801
				//		so push a null onto the stack
2802
				if (($expectingOperand) || (!$expectingOperator)) {
@@ 2979-2983 (lines=5) @@
2976
			}
2977
		}
2978
2979
		while (($op = $stack->pop()) !== NULL) {	// pop everything off the stack and push onto output
2980
			if ((is_array($opCharacter) && $opCharacter['value'] == '(') || ($opCharacter === '('))
2981
				return $this->_raiseFormulaError("Formula Error: Expecting ')'");	// if there are any opening braces on the stack, then braces were unbalanced
2982
			$output[] = $op;
2983
		}
2984
		return $output;
2985
	}	//	function _parseFormula()
2986