Вход Регистрация
Файл: vendor/egulias/email-validator/src/Parser/PartParser.php
Строк: 55
<?php

namespace EguliasEmailValidatorParser;

use 
EguliasEmailValidatorEmailLexer;
use 
EguliasEmailValidatorResultInvalidEmail;
use 
EguliasEmailValidatorResultReasonConsecutiveDot;
use 
EguliasEmailValidatorResultResult;
use 
EguliasEmailValidatorResultValidEmail;

abstract class 
PartParser
{
    
/**
     * @var array
     */
    
protected $warnings = [];

    
/**
     * @var EmailLexer
     */
    
protected $lexer;

    public function 
__construct(EmailLexer $lexer)
    {
        
$this->lexer $lexer;
    }

    abstract public function 
parse() : Result;

    
/**
     * @return EguliasEmailValidatorWarningWarning[]
     */
    
public function getWarnings()
    {
        return 
$this->warnings;
    }

    protected function 
parseFWS() : Result
    
{
        
$foldingWS = new FoldingWhiteSpace($this->lexer);
        
$resultFWS $foldingWS->parse();
        
$this->warnings array_merge($this->warnings$foldingWS->getWarnings());
        return 
$resultFWS;
    }

    protected function 
checkConsecutiveDots() : Result
    
{
        if (
$this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) {
            return new 
InvalidEmail(new ConsecutiveDot(), $this->lexer->token['value']);
        }

        return new 
ValidEmail();
    }

    protected function 
escaped() : bool
    
{
        
$previous $this->lexer->getPrevious();

        return 
$previous && $previous['type'] === EmailLexer::S_BACKSLASH
            
&&
            
$this->lexer->token['type'] !== EmailLexer::GENERIC;
    }
}
Онлайн: 0
Реклама