1<?php 2 3namespace Egulias\EmailValidator\Parser\CommentStrategy; 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 DomainComment implements CommentStrategy 12{ 13 public function exitCondition(EmailLexer $lexer, int $openedParenthesis) : bool 14 { 15 if (($openedParenthesis === 0 && $lexer->isNextToken(EmailLexer::S_DOT))){ // || !$internalLexer->moveNext()) { 16 return false; 17 } 18 19 return true; 20 } 21 22 public function endOfLoopValidations(EmailLexer $lexer) : Result 23 { 24 //test for end of string 25 if (!$lexer->isNextToken(EmailLexer::S_DOT)) { 26 return new InvalidEmail(new ExpectingATEXT('DOT not found near CLOSEPARENTHESIS'), $lexer->token['value']); 27 } 28 //add warning 29 //Address is valid within the message but cannot be used unmodified for the envelope 30 return new ValidEmail(); 31 } 32 33 public function getWarnings(): array 34 { 35 return []; 36 } 37}