/**
  * Calculates the expression sum of the given node.
  *
  * @param \PDepend\Source\AST\ASTNode $node The currently visited node.
  *
  * @return string
  * @since  0.9.12
  * @todo   I don't like this method implementation, it should be possible to
  *       implement this method with more visitor behavior for the boolean
  *       and logical expressions.
  */
 public function sumComplexity($node)
 {
     $sum = '0';
     if ($node instanceof ASTConditionalExpression) {
         $sum = MathUtil::add($sum, $node->accept($this, 1));
     } elseif ($node instanceof ASTBooleanAndExpression || $node instanceof ASTBooleanOrExpression || $node instanceof ASTLogicalAndExpression || $node instanceof ASTLogicalOrExpression || $node instanceof ASTLogicalXorExpression) {
         $sum = MathUtil::add($sum, '1');
     } else {
         foreach ($node->getChildren() as $child) {
             $expr = $this->sumComplexity($child);
             $sum = MathUtil::add($sum, $expr);
         }
     }
     return $sum;
 }