aboutsummaryrefslogtreecommitdiff
path: root/vendor/sebastian/lines-of-code/src/Counter.php
diff options
context:
space:
mode:
authorGreg <supahgreg@users.noreply.github.com>2025-10-10 20:46:43 -0500
committerGitHub <noreply@github.com>2025-10-10 20:46:43 -0500
commit46e0d6e1efa04c8905b4f8d016512125464a5732 (patch)
treeec1df81a86310e44b5ef07fb4a9aebcb15186e77 /vendor/sebastian/lines-of-code/src/Counter.php
parent92493059da37b3cbd7040f786b1129571e3893cc (diff)
parent2d880e6c7dbdcabe87e9fbfc98835cc3b53eadd9 (diff)
Merge pull request #22 from tt-rss/bugfix/php-deps
Don't bundle PHP dev dependencies
Diffstat (limited to 'vendor/sebastian/lines-of-code/src/Counter.php')
-rw-r--r--vendor/sebastian/lines-of-code/src/Counter.php91
1 files changed, 0 insertions, 91 deletions
diff --git a/vendor/sebastian/lines-of-code/src/Counter.php b/vendor/sebastian/lines-of-code/src/Counter.php
deleted file mode 100644
index cfe5e20a7..000000000
--- a/vendor/sebastian/lines-of-code/src/Counter.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php declare(strict_types=1);
-/*
- * This file is part of sebastian/lines-of-code.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-namespace SebastianBergmann\LinesOfCode;
-
-use function substr_count;
-use PhpParser\Error;
-use PhpParser\Lexer;
-use PhpParser\Node;
-use PhpParser\NodeTraverser;
-use PhpParser\Parser;
-use PhpParser\ParserFactory;
-
-final class Counter
-{
- /**
- * @throws RuntimeException
- */
- public function countInSourceFile(string $sourceFile): LinesOfCode
- {
- return $this->countInSourceString(file_get_contents($sourceFile));
- }
-
- /**
- * @throws RuntimeException
- */
- public function countInSourceString(string $source): LinesOfCode
- {
- $linesOfCode = substr_count($source, "\n");
-
- if ($linesOfCode === 0 && !empty($source)) {
- $linesOfCode = 1;
- }
-
- try {
- $nodes = $this->parser()->parse($source);
-
- assert($nodes !== null);
-
- return $this->countInAbstractSyntaxTree($linesOfCode, $nodes);
-
- // @codeCoverageIgnoreStart
- } catch (Error $error) {
- throw new RuntimeException(
- $error->getMessage(),
- (int) $error->getCode(),
- $error
- );
- }
- // @codeCoverageIgnoreEnd
- }
-
- /**
- * @param Node[] $nodes
- *
- * @throws RuntimeException
- */
- public function countInAbstractSyntaxTree(int $linesOfCode, array $nodes): LinesOfCode
- {
- $traverser = new NodeTraverser;
- $visitor = new LineCountingVisitor($linesOfCode);
-
- $traverser->addVisitor($visitor);
-
- try {
- /* @noinspection UnusedFunctionResultInspection */
- $traverser->traverse($nodes);
- // @codeCoverageIgnoreStart
- } catch (Error $error) {
- throw new RuntimeException(
- $error->getMessage(),
- (int) $error->getCode(),
- $error
- );
- }
- // @codeCoverageIgnoreEnd
-
- return $visitor->result();
- }
-
- private function parser(): Parser
- {
- return (new ParserFactory)->create(ParserFactory::PREFER_PHP7, new Lexer);
- }
-}