@@ 54-56 (lines=3) @@ | ||
51 | return new InvalidEmail(new CRNoLF(), $this->lexer->token['value']); |
|
52 | } |
|
53 | ||
54 | if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) { |
|
55 | return new InvalidEmail(new UnusualElements($this->lexer->token['value']), $this->lexer->token['value']); |
|
56 | } |
|
57 | if ($this->lexer->token['type'] === EmailLexer::S_IPV6TAG) { |
|
58 | $IPv6TAG = true; |
|
59 | } |
@@ 36-38 (lines=3) @@ | ||
33 | return new InvalidEmail(new AtextAfterCFWS(), $this->lexer->token['value']); |
|
34 | } |
|
35 | ||
36 | if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) { |
|
37 | return new InvalidEmail(new ExpectingCTEXT(), $this->lexer->token['value']); |
|
38 | } |
|
39 | ||
40 | if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type'] === EmailLexer::S_AT) { |
|
41 | $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); |
@@ 48-50 (lines=3) @@ | ||
45 | ||
46 | protected function checkConsecutiveDots() : Result |
|
47 | { |
|
48 | if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) { |
|
49 | return new InvalidEmail(new ConsecutiveDot(), $this->lexer->token['value']); |
|
50 | } |
|
51 | ||
52 | return new ValidEmail(); |
|
53 | } |
@@ 265-267 (lines=3) @@ | ||
262 | return new InvalidEmail(new ExpectingATEXT('OPENBRACKET not after AT'), $this->lexer->token['value']); |
|
263 | } |
|
264 | ||
265 | if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) { |
|
266 | return new InvalidEmail(new DomainHyphened('Hypen found near DOT'), $this->lexer->token['value']); |
|
267 | } |
|
268 | ||
269 | if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH |
|
270 | && $this->lexer->isNextToken(EmailLexer::GENERIC)) { |
|
@@ 269-272 (lines=4) @@ | ||
266 | return new InvalidEmail(new DomainHyphened('Hypen found near DOT'), $this->lexer->token['value']); |
|
267 | } |
|
268 | ||
269 | if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH |
|
270 | && $this->lexer->isNextToken(EmailLexer::GENERIC)) { |
|
271 | return new InvalidEmail(new ExpectingATEXT('Escaping following "ATOM"'), $this->lexer->token['value']); |
|
272 | } |
|
273 | ||
274 | if (!isset($validDomainTokens[$this->lexer->token['type']])) { |
|
275 | return new InvalidEmail(new ExpectingATEXT('Invalid token in domain: ' . $this->lexer->token['value']), $this->lexer->token['value']); |
@@ 62-64 (lines=3) @@ | ||
59 | } |
|
60 | } |
|
61 | ||
62 | if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) { |
|
63 | return new InvalidEmail(new ConsecutiveDot(), $this->lexer->token['value']); |
|
64 | } |
|
65 | ||
66 | if ($this->lexer->token['type'] === EmailLexer::S_DOT && |
|
67 | $this->lexer->isNextToken(EmailLexer::S_AT) |
|
@@ 66-70 (lines=5) @@ | ||
63 | return new InvalidEmail(new ConsecutiveDot(), $this->lexer->token['value']); |
|
64 | } |
|
65 | ||
66 | if ($this->lexer->token['type'] === EmailLexer::S_DOT && |
|
67 | $this->lexer->isNextToken(EmailLexer::S_AT) |
|
68 | ) { |
|
69 | return new InvalidEmail(new DotAtEnd(), $this->lexer->token['value']); |
|
70 | } |
|
71 | ||
72 | $resultEscaping = $this->validateEscaping(); |
|
73 | if ($resultEscaping->isInvalid()) { |