Code Duplication    Length = 6-7 lines in 2 locations

src/Lexer.php 2 locations

@@ 756-761 (lines=6) @@
753
                }
754
            } elseif ($state === 4) {
755
                $flags |= Token::FLAG_NUMBER_FLOAT;
756
                if ($this->str[$this->last] === 'e' || $this->str[$this->last] === 'E') {
757
                    $state = 5;
758
                } elseif ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') {
759
                    // Just digits, `e` and `E` are valid characters.
760
                    break;
761
                }
762
            } elseif ($state === 5) {
763
                $flags |= Token::FLAG_NUMBER_APPROXIMATE;
764
                if ($this->str[$this->last] === '+' || $this->str[$this->last] === '-'
@@ 764-770 (lines=7) @@
761
                }
762
            } elseif ($state === 5) {
763
                $flags |= Token::FLAG_NUMBER_APPROXIMATE;
764
                if ($this->str[$this->last] === '+' || $this->str[$this->last] === '-'
765
                    || ($this->str[$this->last] >= '0' && $this->str[$this->last] <= '9')
766
                ) {
767
                    $state = 6;
768
                } else {
769
                    break;
770
                }
771
            } elseif ($state === 6) {
772
                if ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') {
773
                    // Just digits are valid characters.