Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Calculator.php

class Calculator

Same name in this branch
  1. 11.1.x vendor/brick/math/src/Internal/Calculator.php \Brick\Math\Internal\Calculator

Hierarchy

  • class \SebastianBergmann\Complexity\Calculator

Expanded class hierarchy of Calculator

1 file declares its use of Calculator
ExcludeList.php in vendor/phpunit/phpunit/src/Util/ExcludeList.php

File

vendor/sebastian/complexity/src/Calculator.php, line 21

Namespace

SebastianBergmann\Complexity
View source
final class Calculator {
    
    /**
     * @throws RuntimeException
     */
    public function calculateForSourceFile(string $sourceFile) : ComplexityCollection {
        return $this->calculateForSourceString(file_get_contents($sourceFile));
    }
    
    /**
     * @throws RuntimeException
     */
    public function calculateForSourceString(string $source) : ComplexityCollection {
        try {
            $nodes = (new ParserFactory())->createForHostVersion()
                ->parse($source);
            assert($nodes !== null);
            return $this->calculateForAbstractSyntaxTree($nodes);
            // @codeCoverageIgnoreStart
        } catch (Error $error) {
            throw new RuntimeException($error->getMessage(), $error->getCode(), $error);
        }
        // @codeCoverageIgnoreEnd
    }
    
    /**
     * @param Node[] $nodes
     *
     * @throws RuntimeException
     */
    public function calculateForAbstractSyntaxTree(array $nodes) : ComplexityCollection {
        $traverser = new NodeTraverser();
        $complexityCalculatingVisitor = new ComplexityCalculatingVisitor(true);
        $traverser->addVisitor(new NameResolver());
        $traverser->addVisitor(new ParentConnectingVisitor());
        $traverser->addVisitor($complexityCalculatingVisitor);
        try {
            
            /* @noinspection UnusedFunctionResultInspection */
            $traverser->traverse($nodes);
            // @codeCoverageIgnoreStart
        } catch (Error $error) {
            throw new RuntimeException($error->getMessage(), $error->getCode(), $error);
        }
        // @codeCoverageIgnoreEnd
        return $complexityCalculatingVisitor->result();
    }

}

Members

Title Sort descending Modifiers Object type Summary
Calculator::calculateForAbstractSyntaxTree public function
Calculator::calculateForSourceFile public function
Calculator::calculateForSourceString public function

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal