Code Duplication    Length = 6-7 lines in 2 locations

src/Lexer.php 2 locations

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