EVOLUTION-NINJA
Edit File: SimplePhpDocParser.php
<?php declare (strict_types=1); namespace RectorPrefix20211231\Symplify\SimplePhpDocParser; use PhpParser\Comment\Doc; use PhpParser\Node; use PHPStan\PhpDocParser\Lexer\Lexer; use PHPStan\PhpDocParser\Parser\PhpDocParser; use PHPStan\PhpDocParser\Parser\TokenIterator; use RectorPrefix20211231\Symplify\SimplePhpDocParser\ValueObject\Ast\PhpDoc\SimplePhpDocNode; /** * @see \Symplify\SimplePhpDocParser\Tests\SimplePhpDocParser\SimplePhpDocParserTest */ final class SimplePhpDocParser { /** * @var \PHPStan\PhpDocParser\Parser\PhpDocParser */ private $phpDocParser; /** * @var \PHPStan\PhpDocParser\Lexer\Lexer */ private $lexer; public function __construct(\PHPStan\PhpDocParser\Parser\PhpDocParser $phpDocParser, \PHPStan\PhpDocParser\Lexer\Lexer $lexer) { $this->phpDocParser = $phpDocParser; $this->lexer = $lexer; } public function parseNode(\PhpParser\Node $node) : ?\RectorPrefix20211231\Symplify\SimplePhpDocParser\ValueObject\Ast\PhpDoc\SimplePhpDocNode { $docComment = $node->getDocComment(); if (!$docComment instanceof \PhpParser\Comment\Doc) { return null; } return $this->parseDocBlock($docComment->getText()); } public function parseDocBlock(string $docBlock) : \RectorPrefix20211231\Symplify\SimplePhpDocParser\ValueObject\Ast\PhpDoc\SimplePhpDocNode { $tokens = $this->lexer->tokenize($docBlock); $tokenIterator = new \PHPStan\PhpDocParser\Parser\TokenIterator($tokens); $phpDocNode = $this->phpDocParser->parse($tokenIterator); return new \RectorPrefix20211231\Symplify\SimplePhpDocParser\ValueObject\Ast\PhpDoc\SimplePhpDocNode($phpDocNode->children); } }