Code Duplication    Length = 6-6 lines in 2 locations

src/PhpSpreadsheet/Calculation.php 2 locations

@@ 3115-3120 (lines=6) @@
3112
            } elseif ((($opCharacter == '~') || ($opCharacter == '|')) && (!$isOperandOrFunction)) {    //    We have to explicitly deny a tilde or pipe, because they are legal
3113
                return $this->raiseFormulaError("Formula Error: Illegal character '~'"); //        on the stack but not in the input expression
3114
            } elseif ((isset(self::$operators[$opCharacter]) or $isOperandOrFunction) && $expectingOperator) {    //    Are we putting an operator on the stack?
3115
                while ($stack->count() > 0 &&
3116
                    ($o2 = $stack->last()) &&
3117
                    isset(self::$operators[$o2['value']]) &&
3118
                    @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) {
3119
                    $output[] = $stack->pop(); //    Swap operands and higher precedence operators from the stack to the output
3120
                }
3121
                $stack->push('Binary Operator', $opCharacter); //    Finally put our current operator onto the stack
3122
                ++$index;
3123
                $expectingOperator = false;
@@ 3356-3361 (lines=6) @@
3353
                //        Cell References) then we have an INTERSECTION operator
3354
                if (($expectingOperator) && (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '.*/Ui', substr($formula, $index), $match)) &&
3355
                    ($output[count($output) - 1]['type'] == 'Cell Reference')) {
3356
                    while ($stack->count() > 0 &&
3357
                        ($o2 = $stack->last()) &&
3358
                        isset(self::$operators[$o2['value']]) &&
3359
                        @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) {
3360
                        $output[] = $stack->pop(); //    Swap operands and higher precedence operators from the stack to the output
3361
                    }
3362
                    $stack->push('Binary Operator', '|'); //    Put an Intersect Operator on the stack
3363
                    $expectingOperator = false;
3364
                }