Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
CRAP
91.67% covered (success)
91.67%
11 / 12
AbstractPreg
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2.00
91.67% covered (success)
91.67%
11 / 12
 tokenizeDate
0.00% covered (danger)
0.00%
0 / 1
2.00
91.67% covered (success)
91.67%
11 / 12
<?php
namespace Popy\Calendar\Parser\DateLexer;
use Popy\Calendar\Parser\DateLexerResult;
use Popy\Calendar\Parser\PregDateLexerInterface;
/**
 * Abstract implementation of Preg based lexers.
 */
abstract class AbstractPreg implements PregDateLexerInterface
{
    /**
     * @inheritDoc
     */
    public function tokenizeDate($string, $offset = 0)
    {
        $match = [];
        if (!preg_match(
            '/\G'.$this->getExpression().'/',
            $string,
            $match,
            PREG_OFFSET_CAPTURE,
            $offset
        )) {
            return null;
        }
        $this->hydrateResult(
            $res = new DateLexerResult($offset + strlen($match[0][0])),
            $match
        );
        return $res;
    }
}