Code Duplication    Length = 6-7 lines in 2 locations

src/Lexer.php 2 locations

@@ 778-783 (lines=6) @@
775
                }
776
            } elseif ($state === 4) {
777
                $flags |= Token::FLAG_NUMBER_FLOAT;
778
                if ($this->str[$this->last] === 'e' || $this->str[$this->last] === 'E') {
779
                    $state = 5;
780
                } elseif ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') {
781
                    // Just digits, `e` and `E` are valid characters.
782
                    break;
783
                }
784
            } elseif ($state === 5) {
785
                $flags |= Token::FLAG_NUMBER_APPROXIMATE;
786
                if ($this->str[$this->last] === '+' || $this->str[$this->last] === '-'
@@ 786-792 (lines=7) @@
783
                }
784
            } elseif ($state === 5) {
785
                $flags |= Token::FLAG_NUMBER_APPROXIMATE;
786
                if ($this->str[$this->last] === '+' || $this->str[$this->last] === '-'
787
                    || ($this->str[$this->last] >= '0' && $this->str[$this->last] <= '9')
788
                ) {
789
                    $state = 6;
790
                } else {
791
                    break;
792
                }
793
            } elseif ($state === 6) {
794
                if ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') {
795
                    // Just digits are valid characters.