class Parser
Same name in this branch
- 11.1.x vendor/open-telemetry/api/Baggage/Propagation/Parser.php \OpenTelemetry\API\Baggage\Propagation\Parser
- 11.1.x vendor/sebastian/cli-parser/src/Parser.php \SebastianBergmann\CliParser\Parser
- 11.1.x vendor/sebastian/diff/src/Parser.php \SebastianBergmann\Diff\Parser
- 11.1.x vendor/twig/twig/src/Parser.php \Twig\Parser
- 11.1.x vendor/symfony/css-selector/Parser/Parser.php \Symfony\Component\CssSelector\Parser\Parser
- 11.1.x vendor/symfony/yaml/Parser.php \Symfony\Component\Yaml\Parser
- 11.1.x vendor/mck89/peast/lib/Peast/Selector/Parser.php \Peast\Selector\Parser
- 11.1.x vendor/mck89/peast/lib/Peast/Syntax/Parser.php \Peast\Syntax\Parser
Hierarchy
- class \Egulias\EmailValidator\Parser
Expanded class hierarchy of Parser
File
-
vendor/
egulias/ email-validator/ src/ Parser.php, line 10
Namespace
Egulias\EmailValidatorView source
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);
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|
Parser::$lexer | protected | property | ||
Parser::$warnings | protected | property | ||
Parser::getWarnings | public | function | ||
Parser::hasAtToken | protected | function | ||
Parser::parse | public | function | 2 | |
Parser::parseLeftFromAt | abstract protected | function | 2 | |
Parser::parseRightFromAt | abstract protected | function | id-left "@" id-right | 2 |
Parser::preLeftParsing | abstract protected | function | 2 | |
Parser::__construct | public | function |