%PDF- %PDF-
| Direktori : /home/vacivi36/vacivitta.com.br/vendor/rector/rector/src/PhpParser/Parser/ |
| Current File : /home/vacivi36/vacivitta.com.br/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php |
<?php
declare (strict_types=1);
namespace Rector\Core\PhpParser\Parser;
use PhpParser\Node\Stmt;
use PhpParser\NodeTraverser;
use PhpParser\NodeVisitor\NodeConnectingVisitor;
use PhpParser\Parser;
use PhpParser\ParserFactory;
use RectorPrefix20211231\Symplify\SmartFileSystem\SmartFileSystem;
final class SimplePhpParser
{
/**
* @readonly
* @var \PhpParser\Parser
*/
private $phpParser;
/**
* @readonly
* @var \Symplify\SmartFileSystem\SmartFileSystem
*/
private $smartFileSystem;
public function __construct(\RectorPrefix20211231\Symplify\SmartFileSystem\SmartFileSystem $smartFileSystem)
{
$this->smartFileSystem = $smartFileSystem;
$parserFactory = new \PhpParser\ParserFactory();
$this->phpParser = $parserFactory->create(\PhpParser\ParserFactory::PREFER_PHP7);
}
/**
* @return Stmt[]
*/
public function parseFile(string $filePath) : array
{
$fileContent = $this->smartFileSystem->readFile($filePath);
return $this->parseString($fileContent);
}
/**
* @return Stmt[]
*/
public function parseString(string $fileContent) : array
{
$stmts = $this->phpParser->parse($fileContent);
if ($stmts === null) {
return [];
}
$nodeTraverser = new \PhpParser\NodeTraverser();
$nodeTraverser->addVisitor(new \PhpParser\NodeVisitor\NodeConnectingVisitor());
return $nodeTraverser->traverse($stmts);
}
}