/**
* @var string
*/
private $localPart = '';
public function parse(): Result
{ $this->lexer->
startRecording();
while (!
$this->lexer->current->
isA(EmailLexer::S_AT
) && !
$this->lexer->current->
isA(EmailLexer::S_EMPTY
)) { if ($this->
hasDotAtStart()) { return new InvalidEmail(new DotAtStart(),
$this->lexer->current->value
);
} if ($this->lexer->current->
isA(EmailLexer::S_DQUOTE
)) { $dquoteParsingResult =
$this->
parseDoubleQuote();
//Invalid double quote parsing
if ($dquoteParsingResult->
isInvalid()) { return $dquoteParsingResult;
} }