Code Duplication    Length = 6-7 lines in 2 locations

src/Lexer.php 2 locations

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