| @@ 36-38 (lines=3) @@ | ||
| 33 | }  | 
                                |
| 34 | }  | 
                                |
| 35 | ||
| 36 |         if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { | 
                                |
| 37 | return new InvalidEmail(new UnOpenedComment(), $this->lexer->token['value']);  | 
                                |
| 38 | }  | 
                                |
| 39 | ||
| 40 | $this->warnings[WarningComment::CODE] = new WarningComment();  | 
                                |
| 41 | ||
| @@ 57-59 (lines=3) @@ | ||
| 54 | ||
| 55 |         if($this->openedParenthesis >= 1) { | 
                                |
| 56 | return new InvalidEmail(new UnclosedComment(), $this->lexer->token['value']);  | 
                                |
| 57 |         } else if ($this->openedParenthesis < 0) { | 
                                |
| 58 | return new InvalidEmail(new UnOpenedComment(), $this->lexer->token['value']);  | 
                                |
| 59 | }  | 
                                |
| 60 | ||
| 61 | $finalValidations = $this->commentStrategy->endOfLoopValidations($this->lexer);  | 
                                |
| 62 | ||
| @@ 27-29 (lines=3) @@ | ||
| 24 | ||
| 25 | $this->checkCRLFInFWS();  | 
                                |
| 26 | ||
| 27 |         if ($this->lexer->token['type'] === EmailLexer::S_CR) { | 
                                |
| 28 | return new InvalidEmail(new CRNoLF(), $this->lexer->token['value']);  | 
                                |
| 29 | }  | 
                                |
| 30 | ||
| 31 |         if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type']  !== EmailLexer::S_AT) { | 
                                |
| 32 | return new InvalidEmail(new AtextAfterCFWS(), $this->lexer->token['value']);  | 
                                |
| @@ 30-32 (lines=3) @@ | ||
| 27 | $IPv6TAG = false;  | 
                                |
| 28 | $addressLiteral = '';  | 
                                |
| 29 |         do { | 
                                |
| 30 |             if ($this->lexer->token['type'] === EmailLexer::C_NUL) { | 
                                |
| 31 | return new InvalidEmail(new ExpectingDTEXT(), $this->lexer->token['value']);  | 
                                |
| 32 | }  | 
                                |
| 33 | ||
| 34 | $this->addObsoleteWarnings();  | 
                                |
| 35 | ||
| @@ 47-49 (lines=3) @@ | ||
| 44 | $this->parseFWS();  | 
                                |
| 45 | }  | 
                                |
| 46 | ||
| 47 |             if ($this->lexer->isNextToken(EmailLexer::S_CR)) { | 
                                |
| 48 | return new InvalidEmail(new CRNoLF(), $this->lexer->token['value']);  | 
                                |
| 49 | }  | 
                                |
| 50 | ||
| 51 |             if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) { | 
                                |
| 52 | $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT();  | 
                                |
| @@ 98-100 (lines=3) @@ | ||
| 95 | ||
| 96 | private function checkInvalidTokensAfterAT() : Result  | 
                                |
| 97 |     { | 
                                |
| 98 |         if ($this->lexer->token['type'] === EmailLexer::S_DOT) { | 
                                |
| 99 | return new InvalidEmail(new DotAtStart(), $this->lexer->token['value']);  | 
                                |
| 100 | }  | 
                                |
| 101 |         if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { | 
                                |
| 102 |             return new InvalidEmail(new ReasonDomainHyphened('After AT'), $this->lexer->token['value']); | 
                                |
| 103 | }  | 
                                |
| @@ 101-103 (lines=3) @@ | ||
| 98 |         if ($this->lexer->token['type'] === EmailLexer::S_DOT) { | 
                                |
| 99 | return new InvalidEmail(new DotAtStart(), $this->lexer->token['value']);  | 
                                |
| 100 | }  | 
                                |
| 101 |         if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { | 
                                |
| 102 |             return new InvalidEmail(new ReasonDomainHyphened('After AT'), $this->lexer->token['value']); | 
                                |
| 103 | }  | 
                                |
| 104 | return new ValidEmail();  | 
                                |
| 105 | }  | 
                                |
| 106 | ||
| @@ 222-224 (lines=3) @@ | ||
| 219 | throw new CommaInDomain();  | 
                                |
| 220 | }  | 
                                |
| 221 | ||
| 222 |         if ($this->lexer->token['type'] === EmailLexer::S_AT) { | 
                                |
| 223 | return new InvalidEmail(new ReasonConsecutiveAt(), $this->lexer->token['value']);  | 
                                |
| 224 | }  | 
                                |
| 225 | ||
| 226 |         if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) { | 
                                |
| 227 | throw new ExpectingATEXT();  | 
                                |