Code Duplication    Length = 3-4 lines in 3 locations

src/Parser/LocalPart.php 1 location

@@ 25-27 (lines=3) @@
22
        $totalLength = 0;
23
24
        while ($this->lexer->token['type'] !== EmailLexer::S_AT && null !== $this->lexer->token['type']) {
25
            if ($this->lexer->token['type'] === EmailLexer::S_DOT && null === $this->lexer->getPrevious()['type']) {
26
                throw new DotAtStart();
27
            }
28
29
            $closingQuote = $this->checkDQUOTE($closingQuote);
30
            if ($closingQuote && $parseDQuote) {

src/Parser/Parser.php 2 locations

@@ 68-71 (lines=4) @@
65
     */
66
    protected function validateQuotedPair()
67
    {
68
        if (!($this->lexer->token['type'] === EmailLexer::INVALID
69
            || $this->lexer->token['type'] === EmailLexer::C_DEL)) {
70
            throw new ExpectingQPair();
71
        }
72
73
        $this->warnings[QuotedPart::CODE] =
74
            new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']);
@@ 127-129 (lines=3) @@
124
            throw new AtextAfterCFWS();
125
        }
126
127
        if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) {
128
            throw new ExpectingCTEXT();
129
        }
130
131
        if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type']  === EmailLexer::S_AT) {
132
            $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt();