Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 15 |
NonSymbolMatcher | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
30 | |
0.00% |
0 / 15 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
tokenizeDate | |
0.00% |
0 / 1 |
20 | |
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); | |
} | |
} | |
} |