Code Duplication    Length = 6-6 lines in 2 locations

src/PhpSpreadsheet/Calculation.php 2 locations

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