Parser.php
Same filename in this branch
- 11.1.x vendor/open-telemetry/api/Baggage/Propagation/Parser.php
- 11.1.x vendor/phpunit/phpunit/src/Metadata/Parser/Parser.php
- 11.1.x vendor/sebastian/cli-parser/src/Parser.php
- 11.1.x vendor/sebastian/diff/src/Parser.php
- 11.1.x vendor/nikic/php-parser/lib/PhpParser/Parser.php
- 11.1.x vendor/twig/twig/src/Parser.php
- 11.1.x vendor/symfony/css-selector/Parser/Parser.php
- 11.1.x vendor/symfony/yaml/Parser.php
- 11.1.x vendor/mck89/peast/lib/Peast/Selector/Parser.php
- 11.1.x vendor/mck89/peast/lib/Peast/Syntax/Parser.php
- 11.1.x vendor/mck89/peast/lib/Peast/Syntax/JSX/Parser.php
Namespace
Egulias\EmailValidatorFile
-
vendor/
egulias/ email-validator/ src/ Parser.php
View source
<?php
namespace Egulias\EmailValidator;
use Egulias\EmailValidator\Result\Result;
use Egulias\EmailValidator\Result\ValidEmail;
use Egulias\EmailValidator\Result\InvalidEmail;
use Egulias\EmailValidator\Result\Reason\ExpectingATEXT;
abstract class Parser {
/**
* @var Warning\Warning[]
*/
protected $warnings = [];
/**
* @var EmailLexer
*/
protected $lexer;
/**
* id-left "@" id-right
*/
protected abstract function parseRightFromAt() : Result;
protected abstract function parseLeftFromAt() : Result;
protected abstract function preLeftParsing() : Result;
public function __construct(EmailLexer $lexer) {
$this->lexer = $lexer;
}
public function parse(string $str) : Result {
$this->lexer
->setInput($str);
if ($this->lexer
->hasInvalidTokens()) {
return new InvalidEmail(new ExpectingATEXT("Invalid tokens found"), $this->lexer->current->value);
}
$preParsingResult = $this->preLeftParsing();
if ($preParsingResult->isInvalid()) {
return $preParsingResult;
}
$localPartResult = $this->parseLeftFromAt();
if ($localPartResult->isInvalid()) {
return $localPartResult;
}
$domainPartResult = $this->parseRightFromAt();
if ($domainPartResult->isInvalid()) {
return $domainPartResult;
}
return new ValidEmail();
}
/**
* @return Warning\Warning[]
*/
public function getWarnings() : array {
return $this->warnings;
}
protected function hasAtToken() : bool {
$this->lexer
->moveNext();
$this->lexer
->moveNext();
return !$this->lexer->current
->isA(EmailLexer::S_AT);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
Parser |