1<?php
2
3namespace Egulias\EmailValidator\Parser;
4
5use Egulias\EmailValidator\EmailLexer;
6use Egulias\EmailValidator\Result\Result;
7use Egulias\EmailValidator\Result\ValidEmail;
8use Egulias\EmailValidator\Result\InvalidEmail;
9use Egulias\EmailValidator\Result\Reason\ExpectingATEXT;
10
11class IDRightPart extends DomainPart
12{
13    protected function validateTokens(bool $hasComments) : Result
14    {
15        $invalidDomainTokens = array(
16            EmailLexer::S_DQUOTE => true,
17            EmailLexer::S_SQUOTE => true,
18            EmailLexer::S_BACKTICK => true,
19            EmailLexer::S_SEMICOLON => true,
20            EmailLexer::S_GREATERTHAN => true,
21            EmailLexer::S_LOWERTHAN => true,
22        );
23
24        if (isset($invalidDomainTokens[$this->lexer->token['type']])) {
25            return new InvalidEmail(new ExpectingATEXT('Invalid token in domain: ' . $this->lexer->token['value']), $this->lexer->token['value']);
26        }
27        return new ValidEmail();
28    }
29}