Code Duplication    Length = 6-6 lines in 2 locations

src/PhpSpreadsheet/Calculation.php 2 locations

@@ 3147-3152 (lines=6) @@
3144
            } elseif ((($opCharacter == '~') || ($opCharacter == '|')) && (!$isOperandOrFunction)) {    //    We have to explicitly deny a tilde or pipe, because they are legal
3145
                return $this->raiseFormulaError("Formula Error: Illegal character '~'"); //        on the stack but not in the input expression
3146
            } elseif ((isset(self::$operators[$opCharacter]) or $isOperandOrFunction) && $expectingOperator) {    //    Are we putting an operator on the stack?
3147
                while ($stack->count() > 0 &&
3148
                    ($o2 = $stack->last()) &&
3149
                    isset(self::$operators[$o2['value']]) &&
3150
                    @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) {
3151
                    $output[] = $stack->pop(); //    Swap operands and higher precedence operators from the stack to the output
3152
                }
3153
                $stack->push('Binary Operator', $opCharacter); //    Finally put our current operator onto the stack
3154
                ++$index;
3155
                $expectingOperator = false;
@@ 3385-3390 (lines=6) @@
3382
                //        Cell References) then we have an INTERSECTION operator
3383
                if (($expectingOperator) && (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '.*/Ui', substr($formula, $index), $match)) &&
3384
                    ($output[count($output) - 1]['type'] == 'Cell Reference')) {
3385
                    while ($stack->count() > 0 &&
3386
                        ($o2 = $stack->last()) &&
3387
                        isset(self::$operators[$o2['value']]) &&
3388
                        @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) {
3389
                        $output[] = $stack->pop(); //    Swap operands and higher precedence operators from the stack to the output
3390
                    }
3391
                    $stack->push('Binary Operator', '|'); //    Put an Intersect Operator on the stack
3392
                    $expectingOperator = false;
3393
                }