1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<?php
declare(strict_types=1);
/*
* This file is part of the league/commonmark package.
*
* (c) Colin O'Dell <colinodell@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\CommonMark\Tests\Unit\Parser\Inline;
use League\CommonMark\Node\Inline\Text;
use League\CommonMark\Parser\Inline\InlineParserInterface;
use League\CommonMark\Parser\Inline\InlineParserMatch;
use League\CommonMark\Parser\InlineParserContext;
final class FakeInlineParser implements InlineParserInterface
{
/** @var string[] */
private array $matches = [];
private InlineParserMatch $start;
public function __construct(InlineParserMatch $start)
{
$this->start = $start;
}
public function getMatchDefinition(): InlineParserMatch
{
return $this->start;
}
public function parse(InlineParserContext $inlineContext): bool
{
$match = $inlineContext->getFullMatch();
$this->matches[] = $match;
$inlineContext->getCursor()->advanceBy(\mb_strlen($match));
$inlineContext->getContainer()->appendChild(new Text($match));
return true;
}
/**
* @return string[]
*/
public function getMatches(): array
{
return $this->matches;
}
}
|