Code Duplication    Length = 6-7 lines in 2 locations

src/Lexer.php 2 locations

@@ 807-812 (lines=6) @@
804
                }
805
            } elseif ($state === 4) {
806
                $flags |= Token::FLAG_NUMBER_FLOAT;
807
                if ($this->str[$this->last] === 'e' || $this->str[$this->last] === 'E') {
808
                    $state = 5;
809
                } elseif ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') {
810
                    // Just digits, `e` and `E` are valid characters.
811
                    break;
812
                }
813
            } elseif ($state === 5) {
814
                $flags |= Token::FLAG_NUMBER_APPROXIMATE;
815
                if ($this->str[$this->last] === '+' || $this->str[$this->last] === '-'
@@ 815-821 (lines=7) @@
812
                }
813
            } elseif ($state === 5) {
814
                $flags |= Token::FLAG_NUMBER_APPROXIMATE;
815
                if ($this->str[$this->last] === '+' || $this->str[$this->last] === '-'
816
                    || ($this->str[$this->last] >= '0' && $this->str[$this->last] <= '9')
817
                ) {
818
                    $state = 6;
819
                } else {
820
                    break;
821
                }
822
            } elseif ($state === 6) {
823
                if ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') {
824
                    // Just digits are valid characters.