class Calculator
Same name in this branch
- 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\ComplexityView 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 |