Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Parser.php

class Parser

Same name in this branch
  1. 11.1.x vendor/open-telemetry/api/Baggage/Propagation/Parser.php \OpenTelemetry\API\Baggage\Propagation\Parser
  2. 11.1.x vendor/sebastian/cli-parser/src/Parser.php \SebastianBergmann\CliParser\Parser
  3. 11.1.x vendor/sebastian/diff/src/Parser.php \SebastianBergmann\Diff\Parser
  4. 11.1.x vendor/twig/twig/src/Parser.php \Twig\Parser
  5. 11.1.x vendor/symfony/css-selector/Parser/Parser.php \Symfony\Component\CssSelector\Parser\Parser
  6. 11.1.x vendor/symfony/yaml/Parser.php \Symfony\Component\Yaml\Parser
  7. 11.1.x vendor/mck89/peast/lib/Peast/Selector/Parser.php \Peast\Selector\Parser
  8. 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\EmailValidator
View 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
RSS feed
Powered by Drupal