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 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 15
NonSymbolMatcher
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 2
30
0.00% covered (danger)
0.00%
0 / 15
 __construct
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 tokenizeDate
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 12
<?php
namespace Popy\Calendar\Parser\DateLexer;
use Popy\Calendar\Parser\FormatToken;
use Popy\Calendar\Parser\DateLexerResult;
use Popy\Calendar\Parser\DateLexerInterface;
/**
 * Very basic lexer, matching a single token as a litteral one.
 */
class NonSymbolMatcher implements DateLexerInterface
{
    /**
     * Token.
     *
     * @var FormatToken
     */
    protected $token;
    /**
     * Class constructor.
     *
     * @param FormatToken $token
     */
    public function __construct(FormatToken $token)
    {
        $this->token = $token;
    }
    /**
     * @inheritDoc
     */
    public function tokenizeDate($string, $offset = 0)
    {
        if ($this->token->isType(FormatToken::TYPE_EOF)) {
            if (strlen($string) <= $offset) {
                return new DateLexerResult($offset);
            }
            return;
        }
        $len = strlen($this->token->getValue());
        if (substr($string, $offset, $len) === $this->token->getValue()) {
            return new DateLexerResult($offset + $len);
        }
    }
}