PHP 8.2.31
Preview: TokenIteratorFactory.php Size: 1.05 KB
/opt/cpanel/ea-wappspector/vendor/rector/rector/src/BetterPhpDocParser/PhpDocInfo/TokenIteratorFactory.php

<?php

declare (strict_types=1);
namespace Rector\BetterPhpDocParser\PhpDocInfo;

use PHPStan\PhpDocParser\Lexer\Lexer;
use PHPStan\PhpDocParser\Parser\TokenIterator;
use Rector\BetterPhpDocParser\ValueObject\Parser\BetterTokenIterator;
final class TokenIteratorFactory
{
    /**
     * @readonly
     * @var \PHPStan\PhpDocParser\Lexer\Lexer
     */
    private $lexer;
    public function __construct(Lexer $lexer)
    {
        $this->lexer = $lexer;
    }
    public function create(string $content) : BetterTokenIterator
    {
        $tokens = $this->lexer->tokenize($content);
        return new BetterTokenIterator($tokens);
    }
    public function createFromTokenIterator(TokenIterator $tokenIterator) : BetterTokenIterator
    {
        if ($tokenIterator instanceof BetterTokenIterator) {
            return $tokenIterator;
        }
        // keep original tokens and index position
        $tokens = $tokenIterator->getTokens();
        $currentIndex = $tokenIterator->currentTokenIndex();
        return new BetterTokenIterator($tokens, $currentIndex);
    }
}

Directory Contents

Dirs: 0 × Files: 3

Name Size Perms Modified Actions
16.59 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
5.23 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.05 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).